1. 程式人生 > >劍指offer-01:陣列查詢

劍指offer-01:陣列查詢

題目連結

在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
時間限制:1秒
空間限制:32768K

程式碼:

/**
 * 在一個二維陣列中(每個一維陣列的長度相同),
 * 每一行都按照從左到右遞增的順序排序,
 * 每一列都按照從上到下遞增的順序排序。
 * 請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
 */

public class Solution01 {

    public boolean
find(int target, int[][] array) { //共有多少行 int rowCount = array.length; //共有多少列 int colCount = array[0].length; int row = 0; int line = colCount - 1; //先從第一行最大值比較, // 如果比目標值小就增行, // 如果比目標值大就減列; while (row < rowCount && line >=
0) { if (array[row][line] == target) return true; else if (array[row][line] < target) row++; else line--; } return false; } public static void main(String[] args) { int[][] arr={
{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; System.out.print( new Solution01().find(5,arr)); } }