Leetcode 240. Search a 2D Matrix II
2018-03-06 18:56
465 查看
题目描述
这道题的意思是从一个排好序的矩阵中搜索一个值是否存在,矩阵每一行每一列都是按照从小到大排列。
要提高效率,就要尽量减少比较元素的数目,因此,从第一列开始比较,当最后一个元素都小于该值时,则跳到下一行,若有大于该值的元素,则向前退,当小于该值时,若不是第一个元素,则向下运动一行。
关键:这里的j是递减的,即调到下一行也不会重新赋值,因为这是由矩阵的特性决定的,当上一行的该列元素大于该值时,下一行一定是大于该值的,这样,就有效减少了比较次数,极端情况下,比较次数为m+n。
class Solution { public: bool searchMatrix(vector<vector<int>>& matrix, int target) { int m=matrix.size(); if(m==0) return false; int n=matrix[0].size(); int i=0; int j=n-1; while(i<m && j>=0) { if(matrix[i][j]==target) return true; else if(matrix[i][j]>target) j--; else i++; } return false; } };
相关文章推荐
- (medium)LeetCode 240.Search a 2D Matrix II
- LeetCode 240. Search a 2D Matrix II
- 【LeetCode】 240. Search a 2D Matrix II
- LeetCode 240. Search a 2D Matrix II 解题报告
- LeetCode 240. Search a 2D Matrix II
- Leetcode 240. Search a 2D Matrix II[medium]
- [leetcode] 240. Search a 2D Matrix II 解题报告
- Leetcode 240. Search a 2D Matrix II
- Leetcode 240. Search a 2D Matrix II (Medium) (cpp)
- [LeetCode] 240. Search a 2D Matrix II 搜索一个二维矩阵 II
- LeetCode 240. Search a 2D Matrix II
- LeetCode--240. Search a 2D Matrix II
- LeetCode 240. Search a 2D Matrix II
- [leetcode] 240.Search a 2D Matrix II
- LeetCode 240. Search a 2D Matrix II
- leetcode 240. Search a 2D Matrix II
- LeetCode 240. Search a 2D Matrix II(java)
- leetcode240. Search a 2D Matrix II
- leetcode_middle_56_240. Search a 2D Matrix II
- leetcode 240. Search a 2D Matrix II