java數據結構和算法(01)二維數組的查找

  • 題目:在一個二維數組中(每一個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組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;
    }
}
複製代碼
相關文章
相關標籤/搜索