Python - Search Insert Position
2016-01-16 19:52
656 查看
【LeetCode with Python】 Search Insert Position
标签: LeetCodeLeetCodewith PythonPython
2014-09-21 17:50 1027人阅读 评论(0) 收藏 举报
分类:
LeetCode with Python(103)
版权声明:本文为博主原创文章,未经博主允许不得转载。
博客域名:http://www.xnerv.wang
原题页面:https://oj.leetcode.com/problems/search-insert-position/
题目类型:二分查找
难度评价:★★
本文地址:/article/1377469.html
Given 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.
You may assume no duplicates in the array.
Here are few examples.
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0
二分查找的一个变种。如果找到了target,就返回下标(正常的二分查找逻辑),否则就返回插入的位置。二分查找容易搞晕的是到底是返回left还是right,注意到left最终一定停在target上,或停在target的“位置”的右边,所以显然找不到target时,应该返回left的下标作为插入位置。
[python] view
plaincopyprint?
class Solution:
# @param A, a list of integers
# @param target, an integer to be inserted
# @return integer
def searchInsert(self, A, target):
if None == A:
return 0
len_A = len(A)
if target > A[len_A - 1]:
return len_A
if target < A[0]:
return 0
left = 0
right = len_A - 1
while left <= right: # also can be 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
相关文章推荐
- python 框架
- 七步精通Python机器学习 转
- python安装theano,其实是用anconda
- python的类变量与实例变量
- Python
- python tkinter实现简单计算器
- Windows下为64位的python3.4.3安装numpy
- 浅析python 中__name__ = '__main__' 的作用
- python中实现sftp
- [Leetcode]29. Divide Two Integers @python
- 在 windows 平台安装 opencv 和 python 联调
- Python简介和入门
- Python手动构造Cookie模拟登录后获取网站页面内容
- Python保存/提取数据的方法
- python programming
- [Leetcode]23. Merge k Sorted Lists @python
- python读取写入文件
- Python学习笔记 - 1
- Python模块学习:glob 文件路径查找
- Python分析file_sink数据