LeetCode Search in Rotated Sorted Array II
2016-01-25 20:23
351 查看
LeetCode解题之Search in Rotated Sorted Array II
原题
把一个不降序的数组进行旋转,如[0,1,1,1,2,3,4,5]旋转3位成为[3,4,5,0,1,1,1,2]。在这样的数组中判断目标数字是否存在。注意点:
不知道数组旋转了多少位
例子:
输入: nums = [4, 5, 5, 6, 7, 0, 1, 2], target = 4
输出: True
解题思路
当时写 Search in Rotated Sorted Array 的时候已经考虑到数字重复的问题了,所以直接把原来的代码修改一下,返回下标改为返回布尔值。AC源码
[code]class Solution(object): def search(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int """ left = 0 right = len(nums) - 1 while left <= right: mid = left + (right - left) // 2 if nums[mid] == target: return True if nums[mid] > target: if nums[left] <= target or nums[mid] < nums[left]: right = mid - 1 else: left = mid + 1 else: if nums[left] > target or nums[mid] >= nums[left]: left = mid + 1 else: right = mid - 1 return False if __name__ == "__main__": assert Solution().search([4, 5, 5, 6, 7, 0, 1, 2], 4) == True assert Solution().search([4, 5, 6, 7, 7, 7, 7, 7, 0, 1, 2], 7) == True
欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源码。
相关文章推荐
- 图片擦除-美女效果
- Android之WebRTC实现
- OpenStack Ceilometer监控模块没有数据
- Archive打包发布测试
- leetcode49. Group Anagrams
- idc
- php函数:PHP pathinfo() 函数
- C实现单链表的常见功能
- 关于 Bundle
- 经典博客收藏
- 理解选择排序
- DeepLearningToolBox学习——DBN(Deep Belief Net )
- Android使用学习之画图(Canvas,Paint)与手势感应及其应用(乒乓球小游戏)
- 九度oj 1101 计算式的一种有趣解决思路
- qt5.4.0下配置opencv及demo测试
- nginx做了一层负载均衡代理,nginx转发请求给tomcat时,端口号已经丢失掉了
- iOS8之后的UIAlertViewController
- C++ limits头文件的用法(numeric_limits)
- Linux mint 亮度调节
- Count Primes