题解 | #二维数组中的查找#

二维数组中的查找

https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e

public class Solution {
    public boolean Find(int target, int [][] array) {
        if(array==null||array.length==0){
            return false;
        }
        int n=array.length;
        int m=array[0].length;
      
        int i=0;int j=0;
        int right=0; // 标记是不是指针是不是从右回退回来的,是的话就不需要再向后一列查询了,直接行+1;
        while(i>=0&&i<n&&j>=0&&j<m){
            int val=array[i][j];
            if(val==target){
                return true;
            }else{
                if(val>target){
                    j--;
                    right=1;
                }
                else{

                    if(right==1){
                        i++;
                        right=0;
                    }else{
                        if(j==m-1){
                            i++;
                        }else{
                            j++;
                        }
                    }
                }
            }
        }
        return false;
    }
}

全部评论

相关推荐

牛客737698141号:他们可以看到在线简历的。。。估计不合适直接就拒了
点赞 评论 收藏
分享
11-08 16:53
门头沟学院 C++
投票
滑模小马达:第三个如果是qfqc感觉还行,我签的qfkj搞电机的,违约金也很高,但公司感觉还可以,听说之前开过一个试用转正的应届生,仅供参考。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务