亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

二維數組中的查找-算法學習

2023-07-11 10:13:24
2
0

題目詳情:
在一個二維數組array中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
例如:
[ [1,2,8,9],
 [2,4,9,12],
 [4,7,10,13],
 [6,8,11,15] ]
給定 target = 7,返回 true。
給定 target = 3,返回 false。
數據范圍:矩陣的長寬滿足 0≤n,m≤500 , 矩陣中的值滿足0≤val≤10^9
進(jin)階:空(kong)間(jian)(jian)復雜度(du) O(1) ,時間(jian)(jian)復雜度(du) O(n+m)

解題思路:
從二維數組的右上角開始,即初始位置為第一行的最后一列。
比較當前位置的元素與目標整數的大小關系:
如果當前元素等于目標整數,則返回 True。
如果當前元素大于目標整數,由于當前元素下方的元素一定更大,因此我們需要向左移動一列,即 col -= 1。
如果當前元素小于目標整數,由于當前元素左側的元素一定更小,因此我們需要向下移動一行,即 row += 1。
重復步驟 2,直(zhi)到(dao)找到(dao)目標整數(shu)或超出數(shu)組邊界,此時返回 False。

代碼實現:
function searchIn2DArray(array, target) {
    if (!array || array.length === 0 || array[0].length === 0) {
        return false;
    }

    const rows = array.length;
    const cols = array[0].length;

    let row = 0;
    let col = cols - 1;

    while (row < rows && col >= 0) {
        if (array[row][col] === target) {
            return true;
        } else if (array[row][col] > target) {
            col--;
        } else {
            row++;
        }
    }

    return false;
}

// true
console.log(searchIn2DArray(
    [[1, 2, 8, 9],
    [2, 4, 9, 12],
    [4, 7, 10, 13],
    [6, 8, 11, 15]], 7))

0條評論
作者已關閉評論
t****m
98文章(zhang)數
1粉(fen)絲數
t****m
98 文章 | 1 粉絲
t****m
98文章數(shu)
1粉絲數
t****m
98 文(wen)章 | 1 粉(fen)絲
原(yuan)創

二維數組中的查找-算法學習

2023-07-11 10:13:24
2
0

題目詳情:
在一個二維數組array中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
例如:
[ [1,2,8,9],
 [2,4,9,12],
 [4,7,10,13],
 [6,8,11,15] ]
給定 target = 7,返回 true。
給定 target = 3,返回 false。
數據范圍:矩陣的長寬滿足 0≤n,m≤500 , 矩陣中的值滿足0≤val≤10^9
進階:空間復雜度(du) O(1) ,時間復雜度(du) O(n+m)

解題思路:
從二維數組的右上角開始,即初始位置為第一行的最后一列。
比較當前位置的元素與目標整數的大小關系:
如果當前元素等于目標整數,則返回 True。
如果當前元素大于目標整數,由于當前元素下方的元素一定更大,因此我們需要向左移動一列,即 col -= 1。
如果當前元素小于目標整數,由于當前元素左側的元素一定更小,因此我們需要向下移動一行,即 row += 1。
重復步驟 2,直到找到目標整(zheng)數或超(chao)出數組(zu)邊界,此(ci)時返回 False。

代碼實現:
function searchIn2DArray(array, target) {
    if (!array || array.length === 0 || array[0].length === 0) {
        return false;
    }

    const rows = array.length;
    const cols = array[0].length;

    let row = 0;
    let col = cols - 1;

    while (row < rows && col >= 0) {
        if (array[row][col] === target) {
            return true;
        } else if (array[row][col] > target) {
            col--;
        } else {
            row++;
        }
    }

    return false;
}

// true
console.log(searchIn2DArray(
    [[1, 2, 8, 9],
    [2, 4, 9, 12],
    [4, 7, 10, 13],
    [6, 8, 11, 15]], 7))

文章來自個人專欄
文章 | 訂閱(yue)
0條評論
作者已關閉評論
作者已關閉評論
0
0