今天起開始也刷劍指offer啦,一步一步來。
題目描述
在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。

題目分析
題目不難,而且給出的限制也很小,我一開始試試用了暴力逐步循環發現也能通過,但是這題目設計的初衷不是簡單的讓你用暴力循環查找出來,而是要注意是有順序的。所以我們查找的起始點最好從二維數組中的中間的點開始,不過為了方便,我們一般都是選擇最左下角的那個點作為起始點,也就是a[array.lenth][0],比它大就往右邊走,比它小就往上面走。話不多說,上代碼。
代碼
function Find(target, array) { // write code here const n = array.length, m = array[0].length; let row = n - 1, col = 0; if (m === 0 && n === 0) { return false; } while (row >= 0 && col <= m - 1) { if (array[row][col] > target) { row--; } else if (array[row][col] < target) { col++; } else return true; } return false; }
