- 題目:在一個二維數組中(每一個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組array和一個整數target,判斷數組中是否含有該整數。補充完成下面的代碼:
public class Solution {
public boolean Find(int target, int [][] array) {
}
}
複製代碼
- 思路:二維數組從左到右遞增,從上到下遞增,越靠近右下方的數越大,首先找到一個起始元素,數組右上角的元素,若是它大於target,向左移動尋找,若是小於target,則向下移動尋找。
- 最終代碼以下:
public class Solution {
public boolean Find(int target, int[][] array) {
int len = array[0].length - 1;
int i = 0;
while (len >= 0 && i < array[0].length) {
if (array[i][len] > target) {
len--;
} else if (array[i][len] < target) {
i++;
} else {
return true;
}
}
return false;
}
}
複製代碼