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】【1】二維陣列中的查詢陣列
- 劍指 Offer 04. 二維陣列中的查詢陣列
- 二維陣列中的查詢——牛客劍指offer陣列
- 劍指 offer 第一題: 二維陣列中的查詢陣列
- 劍指Offer積累-JZ1-二維陣列中的查詢陣列
- 劍指offer刷題記錄_2. 二維陣列中的查詢陣列
- 二維陣列查詢陣列
- 1. 二位陣列中的查詢(劍指offer)陣列
- 劍指offer-轉陣列的最小數字-php陣列PHP
- 二維陣列中的查詢陣列
- 劍指Offer-連續子陣列中的最大和陣列
- 【JZOF】二維陣列中的查詢陣列
- 劍指offer-例題 連續子陣列的最大和陣列
- 劍指Offer-把陣列中的數排成一個最小的數陣列
- 劍指OFFER-數字在升序陣列中出現的次數(Java)陣列Java
- 指標陣列和陣列指標與二維陣列指標陣列
- 二維陣列與指標陣列指標
- 二維陣列的指標的理解陣列指標
- offer通過--3二維陣列中查詢-2陣列
- 劍指offer-第2章
- 劍指offer-用兩個棧實現佇列-php佇列PHP
- 劍指offer-替換空格02
- 關於二維陣列指標的問題陣列指標
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- 雙指標查詢陣列的連續規律子陣列問題指標陣列
- 劍指 offer(1) -- 陣列篇陣列
- 【Java】陣列二分查詢元素Java陣列
- 每日一題 - 劍指 Offer 53 - I. 在排序陣列中查詢數字 I每日一題排序陣列
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- 二維陣列陣列
- 陣列的查詢(搜尋):線性查詢和二分法查詢陣列
- 0二分查詢簡單 牛客NC.71旋轉陣列的最小數字 leetcode劍指 Offer 11. 旋轉陣列的最小數字陣列LeetCode
- C/C++ 二維陣列的理解(多維陣列)C++陣列
- PHP中二維陣列與多維陣列PHP陣列
- 陣列的主元素查詢陣列
- 二級指標,二維陣列函式引數傳遞指標陣列函式