zoukankan      html  css  js  c++  java
  • [剑指Offer] 1.二维数组中的查找

    题目描述

    在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

    【思路1】双重遍历,查找,相等则返回。

     1 class Solution {
     2 public:
     3     bool Find(int target, vector<vector<int> > array) {
     4         for(int i = 0;i < array.size();i ++){
     5             for(int j = 0;j < array[0].size();j ++){
     6                 if(target == array[i][j]){
     7                     return true;
     8                 }
     9             }
    10         }
    11         return false;
    12     }
    13 };

    【思路2】矩阵是有序的,从左下角来看,向上数字递减,向右数字递增,因此从左下角开始查找:当要查找数字比左下角数字大时,右移;要查找数字比左下角数字小时,上移。

     1 class Solution {
     2 public:
     3     bool Find(int target, vector<vector<int> > array) {
     4         int row = array.size();
     5         int col = array[0].size();
     6         for(int i = row - 1,j = 0;i >= 0 && j < col; ){
     7             if(target == array[i][j]){
     8                 return true;
     9             }else if(target > array[i][j]){
    10                 j ++;
    11             }else{
    12                 i --;
    13             }
    14         }
    15         return false;
    16     }
    17 };
  • 相关阅读:
    关于service相关知识的认识
    如何在service实现弹出对话框
    NDK编程jni学习入门,声明native方法,使其作为java与c的交互接口
    js事件
    es6箭头函数
    es6展开运算符
    es6 解构赋值
    js 函数的this指向
    js函数作用域
    js 预解析以及变量的提升
  • 原文地址:https://www.cnblogs.com/lca1826/p/6436197.html
Copyright © 2011-2022 走看看