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

剑指offer(3)——二维数组中的查找

时间:2019-07-11 11:11:42      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:判断   turn   数组   while   block   style   输入   col   --   

题目:

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

 

思路:

首先选取数组中右上角的数,然后让该数(num1)和待查找的数(num2)进行比较,如果num1比num2小,那么接下来只能向下继续查找,行数加1,如果num1比num2大,那么接下来应该将列数减1,继续查找,直到整个数组遍历完成

 

代码:

 1 public boolean findNum(int[][] arr,int num) {
 2         for(int i=0;i<arr.length;i++) {
 3             if(arr[0].length!=arr[i].length) {
 4                 System.out.println("数组列数不相同");
 5                 return false;
 6             }
 7         }
 8         int l=0;//二维数组行数
 9         int w=arr[l].length-1;//二维数组列数
10         if(arr[l][w]==num) {
11             //System.out.println("有相同的数字");
12             return true;
13         }else {
14             while(arr[l][w]!=num) {
15                 if(l>=arr.length-1||w<0) {
16                     return false;
17                 }
18                 if(arr[l][w]<num) {
19                     l++;
20                 }else{
21                     w--;
22                 }
23             }
24             return true;
25         }
26         
27     }

 

剑指offer(3)——二维数组中的查找

标签:判断   turn   数组   while   block   style   输入   col   --   

原文地址:https://www.cnblogs.com/wgblog-code/p/11168676.html

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