[leetcode]#35. Search Insert Position

来源:互联网 发布:页游多开软件 编辑:程序博客网 时间:2024/06/09 16:01
  • 题意分析:

      给定一个排好序的数组和一个target,如果target在数组里面,那么返回他的位置,否者返回他应该插入哪个位置。

  • 题目思路:

      这也是一个标准的二分查找。如果没有找到,那么和first和last位置的数比较一下就可以得到答案。

class Solution:    # @param A, a list of integers    # @param target, an integer to be inserted    # @return integer    def searchInsert(self, A, target):        left = 0; right = len(A) - 1        while left <= right:            mid = ( left + right ) / 2            if A[mid] < target:                left = mid + 1            elif A[mid] > target:                right = mid - 1            else:                return mid        return left
 1 class Solution(object): 2     def searchInsert(self, nums, target): 3         """ 4         :type nums: List[int] 5         :type target: int 6         :rtype: int 7         """ 8         first = 0;last = len(nums) - 1 9         while first < last:10             mid = (first + last + 1) // 211             if nums[mid] == target:12                 return mid13             if nums[mid] < target:14                 first = mid + 115             else:16                 last = mid - 117         if nums[last] < target:18             return last + 119         if target <= nums[last]:20             return last21         if target < nums[first]:22             return first23         return first + 1
阅读全文
0 0
原创粉丝点击