题目:

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).

Write a function to determine if a given target is in the array.

The array may contain duplicates.

题意及分析:一个升序数组在某个点被翻转过,判断target在数组中的位置,若不存在返回-1,链表中可能含重复的。如果可能有重复,那我们上一题判断左右部分是否有序的方法就失效了,因为可能有这种13111情况,虽然起点小于等于中间,但不代表右边就不是有序的,因为中点也小于等于终点,所有右边也是有序的。所以,如果遇到这种中点和两边相同的情况,我们可以直接向前移动,删除重复点。

代码

class Solution {public boolean search(int[] nums, int target) {int start = 0, end = nums.length - 1, mid = -1;while(start <= end){mid = (start + end) /2;if(target == nums[mid])return true;if(nums[mid] < nums[end] || nums[mid] < nums[start]){       //如果明确右边有序或者左边无序,可以直接在右边查找if(target > nums[mid] && target <= nums[end]){start = mid + 1;}elseend = mid -1;}else if(nums[start] < nums[mid] || nums[mid] > nums[end]){  //如果明确左边有序或者右边无序,可以直接在左边查找if(target < nums[mid] && target >=nums[start]){end = mid -1;}elsestart = mid +1;}else{      //出现num[start]==nums[mid]==nums[end],直接向前移动一个,这样可以达到删除重复数。end--;}}return false; }
}

转载于:https://www.cnblogs.com/271934Liao/p/8056392.html

[LeetCode] 81. Search in Rotated Sorted Array II相关推荐

  1. leetcode 81 Search in Rotated Sorted Array II ----- java

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  2. 81. Search in Rotated Sorted Array II

    题目: Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would ...

  3. 【leetcode】Search in Rotated Sorted Array II(middle)☆

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  4. LeetCode 33. Search in Rotated Sorted Array

    问题链接 LeetCode 33. Search in Rotated Sorted Array 题目解析 给定一个 "升序" 的 无重复 数组,从中寻找目标值."升序& ...

  5. LeetCode Search in Rotated Sorted Array II

     Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would t ...

  6. LeetCode Search in Rotated Sorted Array II -- 有重复的旋转序列搜索

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  7. LeetCode Online Judge 题目C# 练习 - Search in Rotated Sorted Array II

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  8. leetcode - Search in Rotated Sorted Array II

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  9. [算法题] Search in Rotated Sorted Array ii

    题目内容 题目来源:LeetCode Suppose an array sorted in ascending order is rotated at some pivot unknown to yo ...

最新文章

  1. 淘宝获取单笔订单信息服务端调用API及流程
  2. 颜色缩减(带Trackbar)【从毛星云Opencv3编程入门P75 P111例程改编】
  3. 绝了,这18 个开箱即用的 Shell 脚本值得收藏
  4. NOIP2016普及组复赛第一题的AC程序加题解pascal
  5. 动态改变ListView布局
  6. PyTorch可视化理解卷积神经网络
  7. JDK1.5新特性介绍
  8. (转)asp.net夜话之十一:web.config详解
  9. Angular2快速入门-1.创建第一个app
  10. css布局-瀑布流的实现
  11. 毕业论文 Word 排版技巧
  12. dom4j解析xml格式字符串获取标签属性和内容
  13. 树莓派综合项目2:智能小车(一)四轮驱动
  14. MySQL的多表查询及习题练习
  15. 中标麒麟v7服务器宕机问题分析
  16. iphone应用开发
  17. 图解Java服务端Socket建立原理
  18. 数据产品经理---如何设计指标字典
  19. java boxed_Java IntStream boxed()用法及代码示例
  20. 通过$route.mete.show实现组件动态展示

热门文章

  1. 三维点云学习(5)2-Deep learning for Point Cloud-PointNet
  2. 为什么c语言程序设计书不介绍文件删除,C语言程序设计上机指导书2010.doc
  3. 原生vue.js实现待办事项清单,支持增删改查
  4. 文档处理工具库——Apache POI的使用
  5. 全站仪和手机连接软件_全站仪各方面应用的原理、操作及计算,看这篇就对了...
  6. mysql——event定时任务
  7. Android常用Adapter用例
  8. html的table效果,html的table用法(让网页的视觉效果显示出来)
  9. 计算机考试如何添加打印机,如何添加网络打印机?
  10. arduino eeg脑电模块_应用深度学习EEGNet来处理脑电信号