##題目描述 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序,請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數,
思路
從左下角開始查找,
當要查找數字比左下角數字大時,右移;
當要查找數字比左下角數字小時,上移;
時間復雜度O(r+c),空間復雜度O(1),
代碼
public class Solution {
public boolean Find(int target, int [][] array) {
int row = array.length;
if(row < 1) return false;
boolean flag = false;
int col = array[0].length;
int r = row - 1;
for(int c = 0; c < col; c++) {
if(r < 0) break;
if(array[r][c] == target) {
flag = true;
break;
} else if(array[r][c] > target) {
r--;
c--;
} else {
r = row - 1;
}
}
return flag;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/91963.html
標籤:其他
上一篇:洛谷P5661 公交換乘(CSP-J 2019 T2)
下一篇:整數二分演算法
