給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。
你可以假設陣列中無重複元素。
示例 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
二分是乙個查詢數值很快的方法但是前提是有序,二分的時間複雜度是o(logn)舉個簡單的例子,如果給定乙個數,我們要在10億個數中找到這個數,前提是這個數存在,那麼我們最多隻需要30次就可以找到這個數。是不是很大的提高了效率。
因為我們在每次查詢的這時候就去除了一半的數字,每次去掉一半所以減小了查詢基數。
思路:
class
solution
else
if(nums[mid]
left = mid +1;
}return tar;}}
;
搜尋插入位置 LeetCode
給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。示例 1 輸入 1,3,5,6 5 輸出 2 示例 2 輸入 1,3,5,6 2 輸出 1 示例 3 輸入 1,3,5,6 7 輸出 4 示例 4 輸入...
leetcode 搜尋插入位置
給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。示例 1 輸入 1,3,5,6 5 輸出 2 示例 2 輸入 1,3,5,6 2 輸出 1 示例 3 輸入 1,3,5,6 7 輸出 4 示例 4 輸入...
leetcode 搜尋插入位置
給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。示例 1 輸入 1,3,5,6 5 輸出 2 示例 2 輸入 1,3,5,6 2 輸出 1 示例 3 輸入 1,3,5,6 7 輸出 4 示例 4 輸入...