leetcode 240. 搜索二维矩阵 II

2023.11.22

本题最先想到的是暴力法和二分法,暴力法就不写了,写一下二分法的解法,java代码如下:

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        for(int[] row : matrix){
            int left = 0;
            int right = row.length-1;
            while(left <= right){
                int mid = (left + right) / 2;
                if(row[mid] == target) return true;
                else if(row[mid] > target) right = mid-1;
                else left = mid + 1; 
            }
        }
        return false;
    }
}

翻看了下评论区,有个Z字型解法,是从右上角开始遍历,我则从左下角开始遍历,然后当前元素大于target值就往上走,小于target值就往右走,直到走到边界也没找到就返回false,java代码如下:

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int row = matrix.length-1;
        int col = 0;
        //从左下角开始搜索
        while(row>=0 && col<matrix[0].length){
            if(matrix[row][col] == target) return true;
            else if(matrix[row][col] > target) row--;
            else col++;
        }
        return false;
    }
}
相关推荐
敖行客 Allthinker20 小时前
IM 融合专题:后端架构师的核心修炼
java·开发语言·数据库
凌波粒20 小时前
LeetCode--53. 最大子序和(贪心算法)
算法·leetcode·贪心算法
Hesionberger20 小时前
快速求解完全平方数的最少数量
开发语言·数据结构·python·算法·leetcode·c#
c2385620 小时前
《序列 DP:C++ 中的“最长”套路与编辑距离》
c++·算法·动态规划
HAPPY酷20 小时前
【ROS2】16G 内存笔记本跑 ROS2 仿真?VMware 虚拟机“保姆级”配置指南 (R9 7940HX + RTX 4060)
java·linux·ide·windows·pycharm
aqiu11111120 小时前
【算法日记 19】LeetCode 1. 两数之和:梦开始的地方,哈希表的降维打击
算法·leetcode·职场和发展
折哥的程序人生 · 物流技术专研1 天前
第4篇:Lambda 简化策略模式(Java 8+)
java·设计模式·策略模式·函数式编程·lambda·代码简化·扩充系列
researcher-Jiang1 天前
高性能计算之OpenMP——超算习堂学习1
android·java·学习
CS创新实验室1 天前
算法、齿轮与硅基大脑:数值计算发展简史
人工智能·算法·数值计算
西门吹-禅1 天前
java springboot N+1问题
java·开发语言·spring boot