zoukankan      html  css  js  c++  java
  • Leetcode240. Search a 2D Matrix II搜索二维矩阵2

    编写一个高效的算法来搜索 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。

    如果从左上角开始,则往右往下都是递增,不能判定到底往哪个方向。

    但是如果是右上角或者左下角,则两个方向情况都不同,就能明确的判定是哪种情况了

    class Solution {
    public:
        bool searchMatrix(vector<vector<int> >& matrix, int target) 
        {
            int r = matrix.size();
            if(r == 0)
                return false;
            int c = matrix[0].size();
            int j = c - 1;
            int i = 0;
            while(i >= 0 && i < r && j >= 0 && j < c)
            {
                if(matrix[i][j] == target)
                {
                    return true;
                }
                else if(matrix[i][j] < target)
                {
                    i++;
                }
                else
                {
                    j--;
                }
            }
            return false;
        }
    };
  • 相关阅读:
    java基础-数组
    泛型 --集合
    单例模式(新)
    static 关键字
    单例模式
    迭代器模式(java版)
    Object类
    JavaWeb学习总结(十七)——JSP中的九个内置对象
    javaweb学习总结(十六)——JSP指令
    javaweb学习总结(十五)——JSP基础语法
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433811.html
Copyright © 2011-2022 走看看