LeetCode 81. 搜索旋转排序数组 II(Search in Rotated Sorted Array II)
题目描述
假设按照升序排序的数组在预先未知的某个点上进行了旋转。
( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。
编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。
示例 1:
输入: nums = [2,5,6,0,0,1,2], target = 0
输出: true
示例 2:
输入: nums = [2,5,6,0,0,1,2], target = 3
输出: false
进阶:
- 这是 搜索旋转排序数组 的延伸题目,本题中的 
nums可能包含重复元素。 - 这会影响到程序的时间复杂度吗?会有怎样的影响,为什么?
 
解题思路
由于本题中的nums可能包含重复元素,所以在进行二分查找时要多考虑一种情况,即当left、mid和right指向的数字都相等时,是无法判断出目标数在哪个半区里,所以只能线性查找。
代码
 class Solution {
 public:
     bool search(vector<int>& nums, int target) {
         int left = , mid, right = nums.size() - ;
         while(left <= right){
             mid = (left + right) / ;
             if(nums[mid] == target) return true;
             if(nums[left] == nums[mid] && nums[right] == nums[mid]){
                 for(; left < right; left++)
                     if(nums[left] == target) return true;
                 return false;
             }
             if(nums[mid] < target){
                 if(nums[right] >= target || nums[mid] >= nums[left])
                     left = mid + ;
                 else right = mid - ;
             }
             else{
                 if(nums[left] <= target || nums[mid] <= nums[right])
                     right = mid - ;
                 else left = mid + ;
             }
         }
         return false;
     }
 };
LeetCode 81. 搜索旋转排序数组 II(Search in Rotated Sorted Array II)的更多相关文章
- Java实现 LeetCode 81 搜索旋转排序数组 II(二)
		
81. 搜索旋转排序数组 II 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] ). 编写一个函数来判 ...
 - LeetCode 81——搜索旋转排序数组 II
		
1. 题目 2. 解答 2.1. 方法一 基于 LeetCode 33--搜索旋转排序数组 中的方法二. 当 nums[mid] = nums[right] 时,比如 [1, 1, 2, 1, 1], ...
 - [LeetCode]题解(python):081 - Search in Rotated Sorted Array II
		
题目来源 https://leetcode.com/problems/search-in-rotated-sorted-array-ii/ Follow up for "Search in ...
 - LeetCode 81 - 搜索旋转排序数组 II - [二分+暴力]
		
假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] ). 编写一个函数来判断给定的目标值是否存在于数组中. ...
 - LeetCode 81 搜索旋转排序数组II
		
题目: 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] ). 编写一个函数来判断给定的目标值是否存在于 ...
 - [Swift]LeetCode81. 搜索旋转排序数组 II | Search in Rotated Sorted Array II
		
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
 - Leetcode 81. 搜索旋转排序数组 II
		
题目链接 https://leetcode-cn.com/problems/search-in-rotated-sorted-array-ii/description/ 题目描述 假设按照升序排序的数 ...
 - 33. Search in Rotated Sorted Array & 81. Search in Rotated Sorted Array II
		
33. Search in Rotated Sorted Array Suppose an array sorted in ascending order is rotated at some piv ...
 - [LeetCode每日一题]81. 搜索旋转排序数组 II
		
[LeetCode每日一题]81. 搜索旋转排序数组 II 问题 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同. 在传递给函数之前,nums 在预先未知的某个下标 k(0 & ...
 
随机推荐
- 基于JWT的token身份认证方案(转)
			
https://www.cnblogs.com/xiangkejin/archive/2018/05/08/9011119.html 一.使用JSON Web Token的好处? 1.性能问题. JW ...
 - Win10应用商店缓存信息多如何去清理?
			
Win10系统的应用商店相比之前有了许多的更新,微软也成立了专门的团队准备对应用商店进行完善,但是我们在使用应用商店的过程中会产生许多缓存文件,占用电脑空间资源,也会影响电脑的运行速度. 下面好系统重 ...
 - centos 7 Apache-Tomcat-8.5.46 安装 Web 应用服务器
			
tomcat 官网版本地址:https://tomcat.apache.org/whichversion.html Servlet规格 JSP规范 EL规格 WebSocket规范 JASPIC规格 ...
 - 《浏览器工作原理与实践》<01>Chrome架构:仅仅打开了1个页面,为什么有4个进程?
			
无论你是想要设计高性能 Web 应用,还是要优化现有的 Web 应用,你都需要了解浏览器中的网络流程.页面渲染过程,JavaScript 执行流程,以及 Web 安全理论,而这些功能是分散在浏览器的各 ...
 - Java面向对象(三) 【面向对象深入:抽象类,接口,内部类等】
			
面向对象(Object Oriented) 1.抽象类抽象就是将拥有共同方法和属性的对象提取出来.提取后,重新设计一个更加通用.更加大众化的类,就叫抽象类.1)abstract 关键字修饰类.方法,即 ...
 - Jmeter中间件处理-缓存
			
前言 消息队列和缓存是目前主流的中间件,我们在日常测试过程中,无论是接口还是压力测试,都会遇到需要处理这些中间件数据的情况.本文以Redis对缓存做一个简单的介绍,并基于Jmeter实现缓存数据处理. ...
 - 使用比特币轻量钱包Electrum
			
一.选择对应的钱包安装程序 浏览器打开 https://electrum.org/#download 选择windwos版本的安装程序 点击下载,并安装 二.运行Electrum的 testnet版本 ...
 - Arduino短学期作业展示
			
自己挖的坑终于填上了,真是欣慰啊= = 源代码:https://github.com/Miyeah/Arduino-Dormitory-Assistant Arduino-Dormitory-Assi ...
 - Twitter的支撑架构:扩展网络与存储并提供服务——架构原则:一次性将事情做对,NFL原则    LSM+B+存储替代cassandra
			
Twitter工程团队近期提供了Twitter核心技术的演进和扩展的详细资料,这些核心技术支撑了Twitter自营数据中心的系统架构,用于提供社会媒体服务.他们分享的关键经验包括:超越原始规格和需求进 ...
 - 初识 MQTT——IBM
			
为什么 MQTT 是最适合物联网的网络协议 官方网址: http://mqtt.org/ Michael Yuan2017 年 6 月 14 日发布 WeiboGoogle+用电子邮件发送本页面 0 ...