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

二维数组中的查找

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;
    }
}

全部评论

相关推荐

03-16 22:00
武汉大学 C++
幸福的小熊猫想要offer:我阿里投的 c++岗,面试官说自己是做 java 的,c++这辈子才有了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务