LeCo-81.搜索旋转数组(二)
题目描述:
解决:
class Solution {public boolean search(int[] nums, int target) {int len= nums.length;if(len==1){if(target==nums[0]){return true;}return false;}else {int left=0;int right=len-1;while (left<=right){int mid=(left+right)/2;if(target==nums[mid]){return true;}if(nums[left]==nums[mid]&&nums[mid]==nums[right]){left++;right--;} else if(nums[left]<=nums[mid]){if(nums[left]<=target&&target<nums[mid]){right=mid-1;}else {left=mid+1;}}else {if(nums[mid]<target&&target<=nums[right]){left=mid+1;}else {right=mid-1;}}}}return false;}
}
我们在LeCo-33.中知道我们可以考虑局部有序,但是这道题,有重复元素,只保证不递减,可能会出现上图所示的情况。也就是说left=mid=right。怎么办?直觉反应,我们考虑left mid-1 mid+1 right 是否相等?
那这种情况呢?我们是不是陷入无止境了?
回想我们的目的,我们要找到mid左右两端非降序的某部分,然后对该部分进行二分,由于left =mid =right阻碍了我们处理,那么我直接left++,right- -规避掉这种情况不就行了?实在是高啊!!!!
LeCo-81.搜索旋转数组(二)相关推荐
- 81. 搜索旋转排序数组 II
81. 搜索旋转排序数组 II Ideas 这题,,,,对Python来说一点技术含量没有. 哈哈哈哈,开个玩笑,完美的避开了考点. Code Python class Solution:def se ...
- 程序员面试金典 - 面试题 10.03. 搜索旋转数组(二分查找)
1. 题目 搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详. 请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小 ...
- 60. Leetcode 面试题 10.03. 搜索旋转数组 (二分查找-局部有序)
搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详.请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小的一个.示例1 ...
- leetcode面试题 10.03. 搜索旋转数组(二分法)
搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详.请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小的一个. 示例 ...
- 程序员面试金典 - 面试题 10.03. 搜索旋转数组
题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 搜索旋转数组.给定一个排序后的数组 ...
- 81. 搜索旋转排序数组 II(014)二分查找+思路+详解+二种做法
一:题目 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同. 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 ...
- LeetCode 79单词搜索80删除排序数组中的重复项Ⅱ81.搜索旋转排序数组Ⅱ
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...
- 59. Leetcode 81. 搜索旋转排序数组 II(二分查找-局部有序)
已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同.在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 ,使 ...
- 81. 搜索旋转排序数组 II---Leecode----java
思路分析 旋转前后,数组中的值总是不变,可以直接进行比较. 代码实现 class Solution {public boolean search(int[] nums, int target) {fo ...
- leetcode 81. 搜索旋转排序数组 II(二分查找)
已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同. 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 , ...
最新文章
- LeetCode简单题之反转字符串
- 在室内停车场使用道路标记语义进行厘米级建图和定位
- 3个月带你通关Go语言
- 详析VC中坐标系的建立
- Ajax实战:Ajax的四个基本原则
- 数据库SQL面试题七则
- ASP.NET Core 介绍
- 前端学习(1747):前端调试值之console用处
- 如何通过三视图判断立方体个数_装机小白看过来:如何通过显卡参数来判断高端低端?...
- T-SQL select语句连接两个表
- ActionErrors 使用说明 struts1 validate 处理流程 详细教程(转)
- JAVA语言基础-面向对象(方法重写概述及其应用)
- java删除文件目录及文件_Java删除文件,目录
- python身份证区域分割_python 身份证归属地解析
- 如何将Excel的单元格设置成下拉选项?-excel设置下拉菜单
- python 确定字符互异
- 运营小技能:自定义公众号菜单模版(带有文章分类栏目、内容列表)、获取历史页面
- react应用结构框架图
- 自然语言16_Chunking with NLTK
- 第4章 设计目标与原则
热门文章
- 重温归一化(MinMaxScaler)和标准化(StandardScaler)
- 从Darry Ring看奢侈品该如何玩转互联网思维
- 跟着清风学建模——拟合算法介绍及mathlab代码实现
- tomcat配置manger账户和host-manager账户的方法详细图解
- [AC自动机+dp] whu oj 1572 I - Cyy and Fzz
- 人脸识别模型评价指标:完整梳理
- usart hmi(串口屏)介绍
- seajs学习(1)----什么是系统
- 用Python+Qt+Java整一个百宝箱
- html自定义图例,自定义 highcharts 图例之 symbol