給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。
你可以假設陣列中無重複元素。
示例 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
通過次數165,311提交次數362,218
思路:
二分查詢,這道題與普通的二分查詢不同之處在於需要返回沒有查詢到目標元素時的應當插入的位置,這就需要多考慮一些邊界情況
1. 進行二分查詢,如果找到目標元素返回當前下標即可
2. 如果沒有找到目標元素,如果當前的值大於目標值,同時前乙個值又小於目標值,這說明目標元素應該插入當前值之前,即當前元素座標,反之如果當前值小於目標值,同時後乙個值又大於目標值,這說明應當插入當前值之後,即當前元素下標加一;
3. 同時需要考慮到如果處在陣列的邊界情況,如果當前值小於目標值,同時當前已經位於陣列末尾,則返回陣列長度即可;如果當前值大於目標值,同時當前已經位於陣列開頭,則返回0。
class
solution
else
if(nums[mid]
>target)
end = mid-1;
}else
if(nums[mid]
start = mid+1;
}}return ret;}}
;
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,...