zoukankan      html  css  js  c++  java
  • leetcode 240搜索二维矩阵

    /**
    正常的二维搜索估计要超时,本题沿着对角线搜索,然后找到第一个大于目标数字的坐标(x,y)然后搜索(>x,<y)(<x,>y)子区域;
    矩阵size() 为m,n;当i>=m时更新i=m,同理j>=n时,j=n;当j和i同时为n,m时还没找到目标数则return;
    **/
    
    class Solution {
    public:
        bool searchMatrix(vector<vector<int>>& matrix, int target) {
            int m=matrix.size();
            if(m==0) return false;
            int n=matrix[0].size();
            if(n==0) return false;
            int x=0,y=0;
            //cout<<m<<","<<n<<endl;
            for(int k=0;k<max(m,n);k++){
                //cout<<matrix[x][y]<<endl;
                if(matrix[x][y]<target){
                    x=x<m-1?(x+1):m-1;
                    y=y<n-1?(y+1):n-1;
                    continue;
                }else{
                    if(matrix[x][y]==target)return true;
                    for(int i=x;i<m;i++)
                        for(int j=0;j<y;j++)
                            if(matrix[i][j]==target) return true;
                    for(int i=0;i<x;i++)
                        for(int j=y;j<n;j++)
                            if(matrix[i][j]==target) return true;
                    return false;
                }
            }
            return false;
        }
    };

     O(m+n)time O(1)space算法:

    /**
    O(m+n)time O(1)space
    **/
    
    class Solution {
    public:
        bool searchMatrix(vector<vector<int>>& matrix, int target) {
            int m=matrix.size();
            if(m==0) return false;
            int n=matrix[0].size();
            if(n==0) return false;
            int i=0,j=n-1;
            while(i<m&&j>=0){
                if(matrix[i][j]==target)
                    return true;
                else if(matrix[i][j]<target)
                    i++;
                else
                    j--;
            }
            return false;
        }
    };
  • 相关阅读:
    linux下解压命令详解
    SSL简介及工作原理
    在CentOS中安装gcc配置c语言开发环境(转)
    JTable表格(隐藏表头)(转)
    一个云平台开源项目Eucalyptus
    「CF645E」 Intellectual Inquiry
    「CERC2017」Donut Drone
    洛谷P3943 星空
    「CSPS 2019」格雷码
    洛谷P3941 入阵曲
  • 原文地址:https://www.cnblogs.com/joelwang/p/10929959.html
Copyright © 2011-2022 走看看