当前位置: 首页 > article >正文

搜索二维矩阵 II(java)

题目描述

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

  • 每行的元素从左到右升序排列。
  • 每列的元素从上到下升序排列。

代码思路:

用暴力算法:

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        // boolean flag = false;
        if(matrix==null ||matrix.length==0 ||target<matrix[0][0]){
            return false;
        }
        int n=matrix.length;
        int m=matrix[0].length;
       
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(matrix[i][j]==target){
                    return true;
                }else if(matrix[i][j]>target){
                    break;
                }
            }
        }
        return false;
    }
}

巧妙的方法:

这个把他看做一个二叉搜索树,其中右上角点是根节点,往下是右子树,往左是左子树。复杂度O(log(M*N))

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        if(matrix==null ||matrix.length==0 ||target<matrix[0][0]){
            return false;
        }
        int n=matrix.length;
        int m=matrix[0].length;
        int i = 0;
        int j = m-1;
        while(true){
            if(matrix[i][j]==target){
                return true;
            }else if(matrix[i][j]>target){
                j--;
                if(j<0){
                    return false; 
                }
            }else{
                i++;
                if(i>n-1){
                    return false;
                }
            }
        }
        
    }
}


http://www.kler.cn/a/416310.html

相关文章:

  • Maven Surefire 插件简介
  • 【Web开发基础学习——corsheaders 应用的理解】
  • Android Studio的AI工具插件使用介绍
  • 宠物之家:基于SpringBoot的领养平台
  • Windows搭建MaskRCNN环境
  • UML的相关介绍
  • 来聊一聊MySQL的Double write和Buffer Pool的关系
  • 论文笔记(五十八)Trends and challenges in robot manipulation
  • SSM搭建(1)——配置MyBatis
  • 第 36 章 - Go语言 服务网格
  • redis机制详解
  • 【Vue3】【Naive UI】<n-message>标签
  • Java—Properties类
  • 3.27浮点数计算
  • [网络安全]sqli-labs Less-5 解题详析
  • Spring Cloud Gateway API 网关
  • 脉冲动画效果
  • 使用CLIP大模型实现视频定位:从理论到实践
  • 说说Elasticsearch拼写纠错是如何实现的?
  • C++设计模式之组合模式中如何实现同一层部件的有序性