zoukankan      html  css  js  c++  java
  • 微软面试题: LeetCode 240. 搜索二维矩阵 II 出现次数:3

    题目描述:

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

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

    思路:

      根据 搜索的矩阵 matrix  特性,可以将  target 和矩阵的右上角元素 比较。

    1. 要是相等,直接返回 true ,找到;

    2. 要是 target 大于 当前的右上角元素 ,说明 target 比当前矩阵的第一行的所有元素都大,将第一行从当前矩阵的搜索空间

    删掉,形成新的矩阵搜索空间;

    3.要是 target 小于 当前的右上角元素 ,说明  target 比当前矩阵的最后一列的所有元素都小,将最后一列从当前矩阵的搜索

    空间删掉,形成新的矩阵搜索空间;

    时间 O( m + n)

    代码如下:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 class Solution {
     4 public:
     5     bool searchMatrix(vector<vector<int>>& matrix, int target)
     6     {
     7         const int m = matrix.size();
     8         const int n = matrix[0].size();
     9         int i = 0,j = n-1;
    10         while (i < m && j >= 0)
    11         {
    12             if(matrix[i][j] == target)
    13             {
    14                 return true;
    15             }
    16             else if(matrix[i][j] > target)
    17             {
    18                 j--;
    19             }
    20             else
    21             {
    22                 i++;
    23             }  
    24         }
    25         return false; 
    26     }
    27 };
  • 相关阅读:
    无符合条件的记录,SUM函数返回NULL。返回0而不是Null
    Java中的堆栈,队列,链表
    Java集合类的问题
    2014.7.30日结
    我的CSS之路1
    2014.7.27-7.28日结
    LeetCode解题源代码链接集锦一
    2014.7.23日结
    C++之数组声明与初始化
    系统结构之指令
  • 原文地址:https://www.cnblogs.com/wangxf2019/p/14606393.html
Copyright © 2011-2022 走看看