码迷,mamicode.com
首页 > 编程语言 > 详细

二维数组中的查找

时间:2021-06-02 15:26:52      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:for   ||   get   array   二维   while   val   span   函数   

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,
每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
 
  [1,2,8,9],
  [2,4,9,12],
  [4,7,10,13],
  [6,8,11,15]
 

给定 target = 7,返回 true。

给定 target = 3,返回 false。

 

输入:
7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
返回值:
true


类二分法
class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
         // 判断数组是否为空
     int m = array.size();
     if (m == 0) return false;
     int n = array[0].size();
     if (n == 0) return false;
         int r = 0, c = n-1; // 右上角元素
     while (r<m && c>=0) {
         if (target == array[r][c]) {
             return true;
         }
         else if (target > array[r][c]) {
             ++r;
         }
         else {
             --c;
         }
     }
     return false;
    }
};

 

 

暴力算法

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
// 判断数组是否为空
     if (array.size() ==0 || array[0].size() ==0) return false;
     for (const auto& vec : array) {
         for (const int val : vec) {
             if (val == target)
                 return true;
         }
     }
     return false;
 }
};

 

二维数组中的查找

标签:for   ||   get   array   二维   while   val   span   函数   

原文地址:https://www.cnblogs.com/enjoyC/p/14824797.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!