力扣——搜索二维矩阵 II

题目链接:

链接

题目描述:

在这里插入图片描述
在这里插入图片描述

思路:

要充分利用矩阵的特征,行递增、列递增,合起来就是对角线递增
所以,可以先遍历对角线元素,如:找到大于、小于target的对角线元素,target应该在这两个元素之间
如:找20,20应该在17到30之间,
在这里插入图片描述
对于行列相等的矩阵这样可以,但是对于行列不相等的,这样只能遍历到较小的数,大的部分就不容易找到
在这里插入图片描述
所以,可以从大的部分开始遍历,而且也不一定要沿着对角线走,如果比当前的数大,向下走,比当前的数小,向左走
在这里插入图片描述

实现代码:

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int m = matrix.length , n = matrix[0].length;
        int x = 0, y = n-1;
        while(x<m && y>=0){
            if(target == matrix[x][y]){
                return true;
            }else if(target < matrix[x][y]){
                y--;
            }else{
                x++;
            }
        }
        return false;        
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值