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

Would this affect the run-time complexity? How and why?

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

题意:给出一个数组(有重复元素,是经过旋转的有序数组)及一个数,问这个数是否在数组中出现

思路:二分法

代码如下

第一种用递归(用时364ms)

public class Solution
{private boolean check(int[] nums, int left, int right, int target){int mid = (left + right) >> 1;if (left > right) return false;if (nums[mid] == target) return true;return check(nums, left, mid - 1, target) || check(nums, mid + 1, right, target);}public boolean search(int[] nums, int target){int left = 0, right = nums.length - 1;return check(nums, left, right, target);}
}

第二种非递归(用时388ms)
代码如下

public class Solution {public boolean search(int[] nums, int target){int left = 0, right = nums.length - 1;while (left <= right){int mid = (left + right) >> 1;if (nums[mid] == target) return true;else if (nums[left] == nums[mid] && nums[mid] == nums[right]) {left++;right--;}else if (nums[left] <= nums[mid]) {if (target >= nums[left] && target < nums[mid]) right = mid - 1;else left = mid + 1;}else {if (target > nums[mid] && target <= nums[right]) left = mid + 1;else right = mid - 1;}}return false;}
}

LeetCode Search in Rotated Sorted Array II相关推荐

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

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

  2. leetcode - Search in Rotated Sorted Array II

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

  3. [leetcode]Search in Rotated Sorted Array II

    这道题目仍然是二分,去掉不可能的部分.用了递归,在重复的情况下,就是有可能最左边的和最右边的相等,此时就不能直接判断出区间外的元素,左右两边同时递归.有重复元素的时候,在bad case的时候会退化为 ...

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

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

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

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

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

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

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

  8. 81. Search in Rotated Sorted Array II

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

  9. Search in Rotated Sorted Array II

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

最新文章

  1. 【杂谈】有三AI秋季划增加生成对抗网络小组,你准备好大GAN一场了吗
  2. Win11代言人官宣
  3. 如何判断一个人是不是值得深入交流?
  4. 荣耀es升级鸿蒙,华为手机明年全部升级鸿蒙系统 所有自研设备换OS
  5. 十二款硬盘数据恢复软件,百分之九十五的人没听过!
  6. Elasticsearch Trying to create too many scroll contexts. Must be less than or equal to: [500]
  7. python中返回上上级目录的命令
  8. CogPDF417Tool工具
  9. java爬取前程无忧(51job)
  10. java输出txt乱码_Java程序输出txt文件内容时中文乱码怎么处理?
  11. 狄克斯特拉算法(Dijkstra)——算法思想及代码实现
  12. extjs 数字校园-云资源平台 2014.2.4-班级座位表
  13. 2020年“信创”火了!一文看懂什么是信创
  14. Python : 程序提示SyntaxError: invalid syntax错误
  15. 自动投票系统【四】C# 清除Cookies
  16. SSM项目实战:酒店管理系统
  17. 离职后,华为的哪些东西是你最留恋的?
  18. 清华在职计算机博士招生简章,清华大学博士招生改革说明
  19. [几何] 计算任意多边形的面积、中心、重心
  20. 远程预付费管理系统在淮安茂业时代广场 项目上的应用

热门文章

  1. 数据结构C#版笔记--树与二叉树
  2. 工作流引擎的硬功夫之1-表单自定义
  3. php 判断字符是否是数字_php判断输入是否是纯数字,英文,汉字的方法
  4. 未来教育python视频百度云-青橙课程 | 人工智能走进课堂,为未来教育高质量发展赋能!...
  5. python中类方法与实例方法的区别-Python实例方法、静态方法和类方法详解(包含区别和用法)...
  6. python3菜鸟教程-Python3 快速入门教程
  7. python爬虫小说代码示例-中文编程,用python编写小说网站爬虫
  8. python3基础教程廖雪峰云-廖雪峰Python3教程---实战day1-day13总结
  9. python爬虫流程-什么是爬虫?爬虫的基本流程是什么?
  10. python基础知识整理-python入门基础知识点整理-20171214