nowcoder-劍指offer-二維陣列的查詢
由題意可知,我們需要在一個有序二維陣列中查詢一個特定的值。
暴力迴圈就不講了
由題目的有序陣列我們很容易想到二分法,但在這裡卻有些行不通。
如果我們從左上角開始查詢,則會發現如果target(即需要查詢的數字)大於array[0][0](即左上角的數字)則無法確定查詢方向,因為無論是往右還是往下,都比array[0][0]大,所以我們可以另闢蹊徑,從左下角或者右上角開始查詢,這是很顯而易見的。
那麼接下來我們給出程式碼:
class Solution{
public boolean find(int target, int [][] array){
/*注意這裡判斷陣列是否為空,否則如果陣列為空,則會出現空指標異常*/
if(array.length==0){
return false;
}
/*獲得array陣列的行長度與列長度*/
int rowLength=array.length,columnLength=array[0].length;
/*定義初始查詢位置*/
int rowIndex=rowLength-1,columnIndex=0;
/*如果查詢越界,則表明陣列當中不存在該數字*/
while(rowIndex>=0&&columnIndex<columnLength){
/*查詢過程*/
if(array[rowIndex][columnIndex]>target){
rowIndex--;
}else if(array[rowIndex][columnIndex]<target){
columnIndex++;
}else{
return true;
}
}
return false;
}
}
相關文章
- 【劍指offer】二維陣列中的查詢陣列
- 【劍指offer】二分查詢二維陣列陣列
- 【劍指offer】【1】二維陣列中的查詢陣列
- 【劍指offer】 第三題 二維陣列查詢陣列
- 二維陣列中的查詢——牛客劍指offer陣列
- 劍指 Offer 04. 二維陣列中的查詢陣列
- 劍指 offer 第一題: 二維陣列中的查詢陣列
- 劍指Offer積累-JZ1-二維陣列中的查詢陣列
- 劍指offer刷題記錄_2. 二維陣列中的查詢陣列
- 劍指offer-轉陣列的最小數字-php陣列PHP
- 1. 二位陣列中的查詢(劍指offer)陣列
- 二維陣列查詢陣列
- 劍指Offer-連續子陣列中的最大和陣列
- JavaScript --二維陣列查詢一維陣列JavaScript陣列
- 二維陣列中的查詢陣列
- 劍指offer-例題 連續子陣列的最大和陣列
- 【JZOF】二維陣列中的查詢陣列
- 劍指Offer-把陣列中的數排成一個最小的數陣列
- 劍指OFFER-數字在升序陣列中出現的次數(Java)陣列Java
- 九度 二維陣列中的查詢陣列
- 面試題——二維陣列中的查詢面試題陣列
- 指標陣列和陣列指標與二維陣列指標陣列
- 九度 1384 二維陣列中的查詢陣列
- 二維陣列的指標的理解陣列指標
- 二維陣列與指標陣列指標
- 二維陣列和指標陣列指標
- 劍指offer-用兩個棧實現佇列-php佇列PHP
- offer通過--3二維陣列中查詢-2陣列
- C++動態建立二維陣列,二維陣列指標,以及動態二維陣列函式傳遞C++陣列指標函式
- 劍指 offer(1) -- 陣列篇陣列
- 劍指offer-字串空格替換為“ ”字串
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- 雙指標查詢陣列的連續規律子陣列問題指標陣列
- 【劍指offer】陣列中的逆序對陣列
- 徹底搞清C/C++中一維陣列,二維陣列,指標,陣列指標和指標陣列以及指向指標的指標,行地址和列地址之間的關係C++陣列指標
- 關於二維陣列指標的問題陣列指標
- 每日一題 - 劍指 Offer 53 - I. 在排序陣列中查詢數字 I每日一題排序陣列
- 【劍指offer】把陣列排成最小的數陣列