每天一道算法题10

【二维有序数组找num】
在行也有序,列也有序的二维数组中,找num,找到返回true,否则返回false。
解答:这道题的关键是二维数组行也有序,列也有序,那么可以从右上角或者左下角开始遍历,因为当该值比num大,那么同一行往左遍历,如果
该值比num小,则往下遍历,如果数组越界,则返回false

public static boolean f(int[][] arr, int num) {
    int row = arr.length;
    int col = arr[0].length;

    for (int i = 0; i < row; ) {
        for (int j = col - 1; j >= 0; ) {
            if (arr[i][j] > num) {
                j--;
            } else if (arr[i][j] < num) {
                i++;
            } else {
                return true;
            }
        }
    }
    return false;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容