給一個排序過的數列 nums 和目標值 target,要找出 目標值 insert() 到 nums 後的不影響排序的位置。
nums是遞增(升序)排列,因此要找到一個位置 index ,該位置使 nums[index - 1] < target 且 nums[index] >= target。
可以從最前方開始找,快一點的做法是使用二分搜尋。
class Solution: def searchInsert(self, nums: List[int], target: int) -> int: l, r = 0, len(nums) while l < r: m = (r-l)//2+l if nums[m] == target: return m elif nums[m] >= target: r = m else: l = m+1 return rC#
public class Solution { public int SearchInsert(int[] nums, int target) { int l = 0; int r = nums.Length; while(l < r) { int m = (r-l)/2 + l; if(nums[m] == target) return m; else if(nums[m] > target) r = m; else l = m + 1; } return r; } }