35. 搜索插入位置

Posted panweiwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了35. 搜索插入位置相关的知识,希望对你有一定的参考价值。

技术图片

 

 技术图片

 

 思路:折半查找,关键在于停止循环的条件。

 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         if target < nums[0]:
 9             return 0
10         elif target > nums[len(nums) - 1]:
11             return len(nums)
12 
13         i, j = 0, len(nums) - 1
14         while i < j-1:
15             if target == nums[i]:
16                 return i
17             elif target == nums[j]:
18                 return j
19             # 折半查找
20             temp = int((i + j) / 2)
21             if target == nums[temp]:
22                 return temp
23             elif target > nums[temp]:
24                 i = temp
25             elif target < nums[temp]:
26                 j = temp
27         if target == nums[i]:
28             return i
29         else:
30             return i + 1
31 
32 
33 if __name__ == __main__:
34     solution = Solution()
35     print(solution.searchInsert([1], 1))

 

以上是关于35. 搜索插入位置的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 35. 搜索插入位置

LeetCode 35. 搜索插入位置

leetcode 35. 搜索插入位置

Leetcode-35.搜索插入位置

leedcode35之搜索插入位置

LeetCode第3天 - 704. 二分查找 | 35. 搜索插入位置