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

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

搜索插入位置-算法學習

2023-07-12 04:00:44
5
0

題目詳情:
給定一個排序數組和一個目標值,在數組中找到目標值,并返回其索引。如果目標值不存在于數組中,返回它將會被按順序插入的位置。
請(qing)必(bi)須使用時間復雜度為 O(log n) 的算(suan)法。

示例:
輸入: nums = [1,3,5,6], target = 5
輸出: 2

解題思路:
O(log n)時間復雜度的算法,那就是考到了二分查找的思想了。
首先(xian),定義指針 left 指向數(shu)組(zu)開頭,指針 right 指向數(shu)組(zu)末尾。

然后,進入循環,當 left 小于(yu)等于(yu) right 時,執行以下操(cao)作(zuo):

計算中間位置的索引 mid,使用 Math.floor 函數取整。
如果中間位置的元素與目標值相等,則直接返回 mid。
如果中間位置的元素小于目標值,則說明目標值在右半部分,將 left 更新為 mid + 1。
如果中間位置的元素大于目標值,則說明目標值在左半部分,將 right 更新為 mid - 1。
最終循環結束后,返(fan)回 left 的(de)值(zhi)作為插入(ru)位置。

代碼實現:
function searchInsert(nums, target) {
    let left = 0;
    let right = nums.length - 1;

    while (left <= right) {
        const mid = Math.floor((left + right) / 2);
        if (nums[mid] === target) {
            return mid;
        } else if (nums[mid] < target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }

    return left;
}

// 示例輸入
const nums = [1, 3, 5, 6];
const target = 5;

// 調用函數并輸出結果
console.log(searchInsert(nums, target));

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

搜索插入位置-算法學習

2023-07-12 04:00:44
5
0

題目詳情:
給定一個排序數組和一個目標值,在數組中找到目標值,并返回其索引。如果目標值不存在于數組中,返回它將會被按順序插入的位置。
請(qing)必(bi)須使(shi)用時(shi)間復雜度為 O(log n) 的算法。

示例:
輸入: nums = [1,3,5,6], target = 5
輸出: 2

解題思路:
O(log n)時間復雜度的算法,那就是考到了二分查找的思想了。
首先,定義指(zhi)針 left 指(zhi)向(xiang)數組(zu)開(kai)頭,指(zhi)針 right 指(zhi)向(xiang)數組(zu)末尾。

然后,進入循(xun)環(huan),當 left 小于等于 right 時,執行以下(xia)操作(zuo):

計算中間位置的索引 mid,使用 Math.floor 函數取整。
如果中間位置的元素與目標值相等,則直接返回 mid。
如果中間位置的元素小于目標值,則說明目標值在右半部分,將 left 更新為 mid + 1。
如果中間位置的元素大于目標值,則說明目標值在左半部分,將 right 更新為 mid - 1。
最終循環(huan)結束后(hou),返回 left 的(de)值作(zuo)為插入位置(zhi)。

代碼實現:
function searchInsert(nums, target) {
    let left = 0;
    let right = nums.length - 1;

    while (left <= right) {
        const mid = Math.floor((left + right) / 2);
        if (nums[mid] === target) {
            return mid;
        } else if (nums[mid] < target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }

    return left;
}

// 示例輸入
const nums = [1, 3, 5, 6];
const target = 5;

// 調用函數并輸出結果
console.log(searchInsert(nums, target));

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