您的位置:首页 > 职场人生

剑指offer - 面试题3:二维数组中的查找

2016-09-11 23:33 423 查看

问题导读:

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

代码:

import java.util.Scanner;

public class interview_3 {
public static void main(String []args) {

Scanner cin = new Scanner(System.in);

int [][]arr = {
{1,2,8,9},
{2,4,9,12},
{4,7,10,13},
{6,8,11,15}
};
int target = cin.nextInt();

if(findNumber(arr, arr.length, arr[0].length, target)) {
System.out.println("ok!");
} else {
System.out.println("no!");
}
}
public static boolean findNumber(int[][] matrix, int rows, int columns, int number) {
boolean found = false;
if(matrix != null && rows > 0 && columns > 0) {
int row = rows -1;
int column = 0;
while(row>=0 && column<columns) {
if(matrix[row][column]==number) {
found = true;
break;
} else if(matrix[row][column]>number) {
row--;
} else {
column++;
}
}
}
return found;
}
}


测试:

peerslee@peerslee-ubuntu:~/ws/java/offer$ java interview_3
1
ok!
peerslee@peerslee-ubuntu:~/ws/java/offer$ java interview_3
2
ok!
peerslee@peerslee-ubuntu:~/ws/java/offer$ java interview_3
5
no!
peerslee@peerslee-ubuntu:~/ws/java/offer$ java interview_3
0
no!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: