程序员

力扣 240 搜索二维矩阵 II

2020-12-04  本文已影响0人  zhaojinhui

题意:给定一个二维数组,行列都拍好序,找出target是否存在

思路:从数组的右上角开始查找

  1. 右上角的数比target大,那么向下移动一行
  2. 右上角的数比target小,那么向左移动一列
  3. 越界就break,返回false

思想:遍历数组

复杂度:时间O(n),空间O(1)

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int m = matrix.length;
        if(m == 0)
            return false;
        int n = matrix[0].length;
        
        int rm = 0;
        int rn = n - 1;
        
        while(rm < m && rn >= 0) {
            if(target < matrix[rm][rn]) {
                rn--;
            } else if(target == matrix[rm][rn]){
                return true;
            } else {
                rm++;
            }
        }
    
        return false;    
    }
}
上一篇 下一篇

猜你喜欢

热点阅读