[LeetCode] 33. Search in Rotated Sorted Array_Medium tag: Binary Search
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.
(i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]).
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.
Your algorithm's runtime complexity must be in the order of O(log n).
Example 1:
Input: nums = [4,5,6,7,0,1,2], target = 0
Output: 4
Example 2:
Input: nums = [4,5,6,7,0,1,2], target = 3
Output: -1
1) 这个题目思路就是先画图, 分区间讨论,注意是左移还是右移,最好画图判断下。
2)可以利用[LeetCode] 153. Find Minimum in Rotated Sorted Array_Medium tag: Binary Search 的思路,通过lg n 找到转折点,然后分别在两段里面找。
T: O(lgn)
Code
1)
class Solution:
def search(self, nums, target):
if not nums: return -1
S, E, l, r = nums[0], nums[-1], 0, len(nums) - 1
while l + 1 < r:
mid = l + (r - l)//2
if target == nums[mid]: return mid
if nums[mid] >= S:
if S <= target <= nums[mid]:
r = mid
else:
l = mid
else:
if nums[mid] <= target <= E:
l = mid
else:
r = mid
if nums[l] == target: return l
if nums[r] == target: return r
return -1
[LeetCode] 33. Search in Rotated Sorted Array_Medium tag: Binary Search的更多相关文章
- [LeetCode] 153. Find Minimum in Rotated Sorted Array_Medium tag: Binary Search
		
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
 - LeetCode 81 Search in Rotated Sorted Array II [binary search] <c++>
		
LeetCode 81 Search in Rotated Sorted Array II [binary search] <c++> 给出排序好的一维有重复元素的数组,随机取一个位置断开 ...
 - leetcode 153. Find Minimum in Rotated Sorted Array 、154. Find Minimum in Rotated Sorted Array II 、33. Search in Rotated Sorted Array 、81. Search in Rotated Sorted Array II 、704. Binary Search
		
这4个题都是针对旋转的排序数组.其中153.154是在旋转的排序数组中找最小值,33.81是在旋转的排序数组中找一个固定的值.且153和33都是没有重复数值的数组,154.81都是针对各自问题的版本1 ...
 - LeetCode:Convert Sorted Array to Binary Search Tree,Convert Sorted List to Binary Search Tree
		
LeetCode:Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in asce ...
 - [Leetcode][JAVA] Convert Sorted Array to Binary Search Tree &&  Convert Sorted List to Binary Search Tree
		
Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascending ord ...
 - 34. Convert Sorted List to Binary Search Tree  &&  Convert Sorted Array to Binary Search Tree
		
Convert Sorted List to Binary Search Tree OJ: https://oj.leetcode.com/problems/convert-sorted-list-t ...
 - Convert Sorted List to Binary Search Tree&&Convert Sorted Array to Binary Search Tree——暴力解法
		
Convert Sorted List to Binary Search Tree Given a singly linked list where elements are sorted in as ...
 - 154. Find Minimum in Rotated Sorted Array II(Binary search)
		
https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/description/ -- leetcode follo ...
 - [LeetCode] 374. Guess Number Higher or Lower_Easy tag: Binary Search
		
We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...
 
随机推荐
- Redux 入门到高级教程
			
Redux 是 JavaScript 状态容器,提供可预测化的状态管理. (如果你需要一个 WordPress 框架,请查看 Redux Framework.) Redux 除了和 React 一起用 ...
 - oracle sql 获取本季度所有月份,上季度所有月份
			
上季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q A FROM DUAL) CONNECT ; 本季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q FRO ...
 - List接口:(介绍其下的两个实现类:ArrayList和LinkedList)
			
以下介绍接口: List接口:(介绍其下的两个实现类:ArrayList和LinkedList) ArrayList和数组非常类似,其底层①也用数组组织数据,ArrayList是动态可变数组. ① ...
 - k8s(6)-滚动更新
			
用户希望应用程序始终可用,开发人员应该每天多次部署新版本的应用程序.在Kubernetes中,这是通过滚动更新完成的.滚动更新允许通过使用新的实例逐步更新Pods实例来实现部署的更新,从而实现零停机. ...
 - Web浏览器里的那些事
			
初衷: 大脑中一直存在误区:一个Web前端工作者只要完美实现产品所提需求,至于浏览器究竟是怎么工作或者其中间都经历了些什么事情,就不用刨根问底了.直到最近看见前端大神winter老师关于浏览器部分的系 ...
 - Inside The C++ Object Model(三)
			
============================================================================3-0. 类所占的内存大小受到三个因素的影响:( ...
 - Kafka集群管理工具kafka-manager的安装使用
			
一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作.具体支持以下内容: 管理多个集群 ...
 - My google script which based on Google Sheet and Form
			
My google script which based on Google Sheet and Form // get sheet data function getSpreadsheetData( ...
 - unity 5.3 以后加载场景
			
记录下官方建议的加载场景的方法: StartCoroutine(LoadYourAsyncScene()); IEnumerator LoadYourAsyncScene() { // The App ...
 - wamp 进入到项目中找不到localhost
			
重点在 www 目录的 index.php 里面,把里面没有第一句没有被注释的话: $suppress_localhost = true; 改成 $suppress_localhost = false ...