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

    题目描述

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

    解题思路

    从右上角开始比较,若当前元素小于target,说明此行没有目标,所以向下移一行继续寻找;若当前元素大于target,说明此列向下没有目标,所以向左移一列,直到找到目标值。

    代码

     1 class Solution {
     2 public:
     3     bool searchMatrix(vector<vector<int>>& matrix, int target) {
     4         if(matrix.empty()) return false;
     5         int rows = matrix.size(), cols = matrix[0].size();
     6         int i = 0, j = cols - 1;
     7         while(i >= 0 && i < rows && j >= 0 && j < cols){
     8             if(matrix[i][j] == target) return true;
     9             else if(matrix[i][j] > target) j--;
    10             else i++;
    11         }
    12         return false;
    13     }
    14 };
  • 相关阅读:
    topcoder srm 681 div1
    topcoder srm 683 div1
    topcoder srm 684 div1
    topcoder srm 715 div1
    topcoder srm 685 div1
    topcoder srm 687 div1
    topcoder srm 688 div1
    topcoder srm 689 div1
    topcoder srm 686 div1
    topcoder srm 690 div1 -3
  • 原文地址:https://www.cnblogs.com/wmx24/p/9916570.html
Copyright © 2011-2022 走看看