劍指offer(1)二維數組的查找


今天起開始也刷劍指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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM