您的位置:首页 > 其它

[leetcode]#35. Search Insert Position

2017-11-17 10:22 330 查看
题意分析:

  给定一个排好序的数组和一个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) // 2
11             if nums[mid] == target:
12                 return mid
13             if nums[mid] < target:
14                 first = mid + 1
15             else:
16                 last = mid - 1
17         if nums[last] < target:
18             return last + 1
19         if target <= nums[last]:
20             return last
21         if target < nums[first]:
22             return first
23         return first + 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 二分查找