30 leetcode - Search Insert Position

来源:互联网 发布:在家网络兼职招聘 编辑:程序博客网 时间:2024/06/07 19:12
#!/usr/bin/python# -*- coding: utf-8 -*-'''题目:Search Insert PositionGiven a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.举例:[1,3,5,6], 5 → 2[1,3,5,6], 2 → 1[1,3,5,6], 7 → 4[1,3,5,6], 0 → 0[1,3,3,3,3,5] 3 -> 1寻找符合要求最小的index'''class Solution(object):    def searchInsert(self, nums, target):        """        :type nums: List[int]        :type target: int        :rtype: int        """        length = len(nums)        if length == 0:            return -1        left,right = 0,length - 1        index = 0        while left <= right:            index = (left + right)>>1            val = nums[index]            if val == target:                if index > 0 and nums[index - 1] == target:                    right = index - 1                else:                    return index            elif val > target:                right = index - 1            else:                left = index + 1        return index if nums[index] > target else index + 1if __name__ == "__main__":    s = Solution()    print s.searchInsert([1,3,3,3,3,5],3)
0 0
原创粉丝点击