Leetcode面试经典150题-74.搜索二维矩阵

解法都在代码里,不懂就留言或者私信

二分查找,比较简单

java 复制代码
class Solution {
    /**解题思路:每一行有序、每一列也有序,只是整体不是严格有序的,那我们需要找一个点,只能往两个方向走,往一个方向走是变小
    往另外一个方向走是变大,我们右两种选择:左下角的点和右上角的点
    我习惯于用右上角的点 */
    public boolean searchMatrix(int[][] matrix, int target) {
        /**就一个数比较相等不相等就完事了呗 */
        if(matrix.length == 1 && matrix[0].length == 1) {
            return matrix[0][0] == target;
        }
        int curRow = 0;
        int curCol = matrix[0].length - 1;
        /**行是变大的,列是变小的,只有这一种走法,while条件是为了避免越界*/
        while(curRow < matrix.length && curCol >= 0) {
            if(matrix[curRow][curCol] == target) {
                return true;
            } else if(matrix[curRow][curCol] < target) {
                curRow ++;
            } else {
                curCol --;
            }
        }
        /**中间没有返回true说明没找到,这里返回false作为答案 */
        return false;
    }
}
相关推荐
切糕师学AI1 分钟前
Spring 中的 @Service 注解
java·spring
10km3 分钟前
java:Apache Commons Configuration2 占位符使用详解
java·apache·占位符·configuration2·commons·interpolator
Andy9 分钟前
回文子串数目--动态规划算法
算法·动态规划
sin_hielo12 分钟前
leetcode 1930
算法·leetcode
qq_4798754313 分钟前
X-Macros(3)
java·开发语言
塞北山巅15 分钟前
相机自动曝光(AE)核心算法——从参数调节到亮度标定
数码相机·算法
想不明白的过度思考者16 分钟前
Spring Web MVC从入门到实战
java·前端·spring·mvc
Andy17 分钟前
Docker 初识
java·docker·容器
聆风吟º17 分钟前
【数据结构入门手札】算法核心概念与复杂度入门
数据结构·算法·复杂度·算法的特性·算法设计要求·事后统计方法·事前分析估算方法
SunnyDays101124 分钟前
Java 高效实现 PPT 转 PDF
java·ppt转pdf