【leetcode hot 100 74】搜索二维矩阵

解法一:双重二分查找

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int n=matrix.length, m=matrix[0].length;
        int row1=0, row2=n-1, col1=0, col2=m-1;
        int row_mid, col_mid;
        while(row1<=row2){
            row_mid = (row1+row2)/2;
            while(col1<=col2){
                col_mid = (col1+col2)/2;
                if(matrix[row_mid][col_mid]==target){
                    return true;
                }
                if(matrix[row_mid][col_mid]>target){
                    col2 = col_mid-1;
                }
                else{
                    col1 = col_mid+1;
                }
            }
            col1=0; 
            col2=m-1;
            if(matrix[row_mid][col2]>=target){
                row2 = row_mid-1;
            }
            else{
                row1 = row_mid+1;
            }
        }
        return false;
    }
}
相关推荐
JK0x0732 分钟前
代码随想录算法训练营 Day40 动态规划Ⅷ 股票问题
算法·动态规划
Feliz..33 分钟前
关于离散化算法的看法与感悟
算法
水蓝烟雨1 小时前
1128. 等价多米诺骨牌对的数量
算法·hot 100
codists1 小时前
《算法导论(第4版)》阅读笔记:p11-p13
算法
Kidddddult3 小时前
力扣刷题Day 43:矩阵置零(73)
算法·leetcode·力扣
大龄Python青年5 小时前
C语言 交换算法之加减法,及溢出防范
c语言·开发语言·算法
啊我不会诶6 小时前
CF每日5题
算法
朱剑君7 小时前
排序算法——基数排序
算法·排序算法
COOCC17 小时前
PyTorch 实战:从 0 开始搭建 Transformer
人工智能·pytorch·python·深度学习·算法·机器学习·transformer
进击的小白菜8 小时前
如何高效实现「LeetCode25. K 个一组翻转链表」?Java 详细解决方案
java·数据结构·leetcode·链表