offer 二维数组查找

Posted cgy1012

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了offer 二维数组查找相关的知识,希望对你有一定的参考价值。

  • 二维数组查找:

(1)C语言实现方式:

测试用例:int AA[16]=1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15;
bool Find1(int * target, int rows,int colums,int number) //输入的行数和列数

 int row=0, colum=colums-1; //实时变化的  /下标

    if (target==NULL||rows<=0||colums<=0)//保持
    
        return false;
    

  while(row<rows&&colum>=0)
  

   if(*(target+row*colums+colum)==number)   //退出循环的条件
   
    return true;
   
   else if(number< (*(target+row*colums+colum) ))  //注意这里二维数组  乘以colums 才对
   
       colum--;
   
   else
   
        row++;
   
  

  return false;

 

2.C++实现方式:

原理和上述C实现是一样的

 

bool Find(QVector<QVector<int> > array,int target) 

       int rowCount = array.size(); //外面这层是行    每一行里包含着各个列
       int colCount = array[0].size();

       int i,j;

       for(i=rowCount-1,j=0;i>=0&&j<colCount;)
       
           if(target == array[i][j])
               return true;
           if(target < array[i][j])
           
               i--;
               continue;
           
           if(target > array[i][j])
           
               j++;
               continue;
           
       
       return false;
   

 

以上是关于offer 二维数组查找的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer python版 二维数组的查找

剑指offer第一题:二维数组的查找(python)

Leetcode刷题Python剑指 Offer 04. 二维数组中的查找

LeetCode | 面试题04. 二维数组中的查找剑指OfferEasyPython数组

Python 迭代器&生成器,装饰器,递归,算法基础:二分查找二维数组转换,正则表达式,作业:计算器开发

在二维数组中查找 n 个 argmins