1 class Solution: 2 def searchInsert(self, nums, target: int) -> int: 3 if target in nums: 4 return nums.index(target) 5 else: 6 if target>=nums[-1]: 7 return len(nums) 8 if target<nums[0]: 9 return 0 10 for i in range(len(nums)): 11 if target>=nums[i] and target<nums[i+1]: 12 return i+1
执行用时 :88 ms, 在所有 Python3 提交中击败了26.55%的用户
内存消耗 :14.2 MB, 在所有 Python3 提交中击败了5.47%的用户
—— 2019.9.24
二分法
public int searchInsert(int[] nums, int target) { //二分法 int len = nums.length; if(len == 0){ return 0; } int left = 0,right = len; while(left<right){ int mid = left + (right - left)/2; if(nums[mid] == target){ return mid; }else if(nums[mid] > target){ right = mid; }else{ left = mid+1; } }//循环结束还是没找到的时候,left == right,则返回left+1 return left; }
——2020.7.15