1. 程式人生 > >LeetCode 35 搜尋插入位置 --python3

LeetCode 35 搜尋插入位置 --python3

給定一個排序陣列和一個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。

你可以假設陣列中無重複元素。

示例 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

遍歷的方法:

class Solution:
    def searchInsert(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        for i in range(0,len(nums)):

            if i == len(nums)-1 and nums[i] < target:
                return i+1
            elif i == 0 and nums[i] > target:
                return i
            else:
                if nums[i]< target and nums[i+1] >= target:
                    return i+1

二分查詢方法:

class Solution:
    def searchInsert(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        length = len(nums)-1
        start = 0
        while start <= length:
            mid = (start + length) //2
            if target > nums[mid]:
                start = mid + 1     
            elif target < nums[mid]:
                length = mid - 1     
            else:
                return mid
        return start