LeetCode35 搜尋插入位置

2021-10-02 17:24:32 字數 832 閱讀 8118

給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。

你可以假設陣列中無重複元素。

示例 1:

輸入: [1,3,5,6], 5

輸出: 2

示例 2:

輸入: [1,3,5,6], 2

輸出: 1

示例 3:

輸入: [1,3,5,6], 7

輸出: 4

示例 4:

輸入: [1,3,5,6], 0

輸出: 0

class

solution

else

if(nums[mid]

>target)

else

}return left;}}

思路:利用二分查詢

時間複雜度:o

(logn)

空間複雜度:o(1

)

需要注意:

int mid = (left + right) / 2;

這種寫法在絕大多數情況下沒問題,但是在 left 和 right 特別大的場景中,left + right 會發生整形溢位,得到乙個負數,mid 的值隨之也是負數。

改進的寫法是:

int mid = left + (right - left) / 2;

這兩種寫法事實上沒有本質的區別,在 left 和 right 都表示陣列索引的時候,幾乎不會越界,因為絕大多數情況下不會開那麼長的陣列。

LeetCode 35 搜尋插入位置

35 搜尋插入位置 給定乙個排序陣列和乙個目標值,如果在陣列中找到目標值則返回索引。如果沒有,返回到它將會被按順序插入的位置。你可以假設在陣列中無重複元素。案例 1 輸入 1,3,5,6 5 輸出 2 案例 2 輸入 1,3,5,6 2 輸出 1 案例 3 輸入 1,3,5,6 7 輸出 4 案例 ...

LeetCode 35 搜尋插入位置

題目描述 給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。示例 示例1 輸入 1,3,5,6 5 輸出 2示例2 輸入 1,3,5,6 2 輸出 1示例3 輸入 1,3,5,6 7 輸出 4示例4 輸入 1,3,5,6 0 輸出...

leetcode 35 搜尋插入位置

題目 給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。示例 1 輸入 1,3,5,6 5輸出 2示例 2 輸入 1,3,5,6 2輸出 1示例 3 輸入 1,3,5,6 7輸出 4示例 4 輸入 1,...