1 陣列 二維陣列的查詢

2021-09-25 14:08:36 字數 652 閱讀 4318

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

思路:

思路一:暴力遍曆法進行查詢 o(n^2)

思路二:類似於二分查詢

已知陣列最右上角的元素 nums[i][j]總是大於它左邊所有的元素,小於它下面左右的元素;

所以從最右的元素進行查詢;

如果target>nums[i][j] 向下移動一行,i++

如果target

如果查詢到。返回true

當遍歷完整個陣列都沒有被查詢到,返回false:利用while()迴圈在陣列內部進行查詢

注意判斷邊界條件

public boolean find(int target, int  array) 

boolean isfind=false;

int row=array.length;

int col=array[0].length;

int i=0,j=col-1;

while(i=0)else if(array[i][j] < target)else

}return isfind;

}

陣列1 二維陣列查詢

面試題3 題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。思路 從給定的二維陣列,選取最右上角的數target,開始與二維陣列中數字進行比較。arrs i target,說明選...

1 二維陣列的查詢

題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。思路 1 當然直接可以用兩層for迴圈,時間複雜度為o n2 感覺一般來說,如果面試題只能是o n2 的複雜度,估計面試也就拜拜...

1 二維陣列的查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。思路 既然每一行是有序的,那麼就遍歷行 key 大於陣列第一位小於最後一位,那麼說明 key 可能在當前這一行...