zoukankan      html  css  js  c++  java
  • LeetCode 240

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

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

    现有矩阵 matrix 如下:

    [
    [1, 4, 7, 11, 15],
    [2, 5, 8, 12, 19],
    [3, 6, 9, 16, 22],
    [10, 13, 14, 17, 24],
    [18, 21, 23, 26, 30]
    ]
    给定 target = 5,返回 true。

    给定 target = 20,返回 false。

    初始坐标 $(i,j)$ 设定为最右上角,如果 $target<mat[i][j]$,那么坐标往左平移一格,因为这一列上的数字都大于 $target$;如果 $target>mat[i][j]$,则坐标往下平移一格,因为这一行上的数字都小于 $target$。

    AC代码:

    class Solution
    {
    public:
        bool searchMatrix(const vector<vector<int>>& mat,int x)
        {
            if(mat.empty()) return 0;
            int i=0, j=mat[0].size()-1;
            while(i<mat.size() && j>=0)
            {
                if(x==mat[i][j]) return 1;
                else if(x<mat[i][j]) j--;
                else i++;
            }
            return 0;
        }
    };
  • 相关阅读:
    图片服务器的搭建
    Nginx的安装和部署
    Zookeeper安装和部署
    集合框架
    案例-学生成绩管理
    java 时间类
    Java 正则表达式
    Java字符串
    Java学生管理系统
    shell实例利用crontab自动清除日志
  • 原文地址:https://www.cnblogs.com/dilthey/p/10776636.html
Copyright © 2011-2022 走看看