当你的才华还撑不起你的野心时,你应该静下心去学习 。 。
题目描述
在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 [ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15] ]
给定 target = 7,返回 true。
给定 target = 3,返回 false。
0 1, 表示val右移一位相当于val/2,相当于 l+(r-l)/2,这样的写法是防止溢出。如果写成 mid = (l+r)/2; l+r可能会溢出。 3) 如果 tar == arr[mid],说明找到tar 4)比较:如果tar > arr[mid], 说明tar在区间[mid+1, r]中,l = mid + 1 5)如果tar < arr[mid],说明tar在区间[l, mid-1]中, r = mid - 1
方法3:现场手撕高效版 关键点在于利用矩阵升序的特性,需要选择合适的切入点与目标值相比较以缩小数据返围,很明显如果选择左上角或右下角当做切入点并不能起到只能分别排除一个选项,而如果选择右上角或者左下角进行比较即可起到更明显的效果。 算法复杂度为O(m+n) m 为matrix行数 n 为matrix列数
参考代码class TechGuide {
public boolean searchMatrix(int[][] matrix, int target) {
if(matrix==null || matrix.length==0) return false;
int x = matrix.length-1;
int y = 0;
while(x>=0 && y
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?