91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中二維數組的查找案例

發布時間:2020-10-28 14:19:31 來源:億速云 閱讀:511 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關JavaScript中二維數組的查找案例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

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

基本思路

二維數組是有序的,比如下面的數據:

1 2 3
4 5 6
7 8 9

可以直接利用左下角數字開始查找:

大于:比較上移

小于:比較右移

代碼思路

將二維數組看作平面坐標系

從左下角(0,arr.length-1)開始比較:

目標值大于坐標值---x坐標+1

目標值小于坐標值---y坐標-1

注意:

二維數組arri中

j代表x坐標

i代表y坐標

代碼

    function Find(target, array) {
      let i = array.length - 1; // y坐標
      let j = 0; // x坐標
      return compare(target, array, i, j);
    }

    function compare(target, array, i, j) {
      if (array[i] === undefined || array[i][j] === undefined) {
        return false;
      }
      const temp = array[i][j];
      if (target === temp) {
        return true;
      }
      else if (target > temp) {
        return compare(target, array, i, j+1);
      }
      else if (target < temp) {
        return compare(target, array, i-1, j);
      }
    }

拓展:二分查找

二分查找的條件是必須有序。

和線性表的中點值進行比較,如果小就繼續在小的序列中查找,如此遞歸直到找到相同的值。

    function binarySearch(data, arr, start, end) {
        if (start > end) {
            return -1;
        }
        var mid = Math.floor((end + start) / 2);
        if (data == arr[mid]) {
            return mid;
        } else if (data < arr[mid]) {
            return binarySearch(data, arr, start, mid - 1);
        } else {
            return binarySearch(data, arr, mid + 1, end);
        }
    }

關于JavaScript中二維數組的查找案例就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潼南县| 鹤庆县| 美姑县| 四子王旗| 贺州市| 岳阳市| 新宁县| 龙海市| 阿拉善右旗| 巴南区| 黄梅县| 深州市| 马山县| 江城| 应城市| 黔西| 得荣县| 绥中县| 安宁市| 乐亭县| 望城县| 治县。| 弋阳县| 称多县| 留坝县| 西乌珠穆沁旗| 闸北区| 遂昌县| 凤凰县| 桂阳县| 临武县| 佛冈县| 内黄县| 颍上县| 视频| 吉隆县| 竹溪县| 玛纳斯县| 勐海县| 招远市| 绿春县|