1. 程式人生 > >leetcode 35. Search Insert Position 搜尋插入位置 python 簡單而高效的方法、二分查詢

leetcode 35. Search Insert Position 搜尋插入位置 python 簡單而高效的方法、二分查詢

class Solution:
    def searchInsert(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        # Approach #1
        # if target in nums:
        #     return nums.index(target)
        # else:
        #     for index,num in enumerate(nums):
# if target < nums[0]: # return 0 # if target > nums[-1]: # return len(nums) # if num < target and nums[index+1] > target: # return index+1 # Approach #2 # left , right = 0 , len(nums) - 1
# if target < nums[left]: # return 0 # if target > nums[right]: # return len(nums) # if target in nums: # return nums.index(target) # while right - 1 > left : # mid = ( left + right ) // 2 # if target < nums[mid]:
# right = mid # elif nums[mid] < target: # left = mid # if nums[mid] == target: # return mid # return left + 1 # Approach #3 簡化方法二 i, j = 0, len(nums) - 1 while i < j: mid = (j - i) // 2 + i if nums[mid] < target: i = mid + 1 else: j = mid - 1 return i+1 if nums[i] < target else i # 最後要寫nums[i]而不是nums[0],因為需要處理二分查詢失敗的輸入。