【leetcode】Array——Search in Rotated Sorted Array II(81)
来源:互联网 发布:mcu和单片机的区别 编辑:程序博客网 时间:2024/05/16 06:28
题目:
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.
思路:
借鉴前一题的思路,同样,先通过比较nums[mid]和nums[left],确定转折点是在左半侧还是右半侧。由于允许重复,所以会出现nums[mid]==nums[left],
这时候不能确定转折点的位置,比如[1,2,1,1,1]和[1,1,1,2,1]
所以这种情况仅作“简单处理”——left++,再重新循环判断。
代码:
public boolean search(int[] nums, int target) {int left =0,right=nums.length-1;while(left<=right){int mid = (left+right)/2;if(nums[mid]==target)return true;if(nums[mid]>nums[left]){//转折点在右侧if(target<nums[mid]&&target>=nums[left])right = mid -1;elseleft = mid +1;}else if(nums[mid]<nums[left]){//转折点在左侧if(target>nums[mid]&&target<=nums[right])left = mid +1;elseright = mid -1;}else{//nums[mid]==nums[left],此时无法判断转折点的位置,所以仅把left+1left++;}}return false;}leetcode上的解法和上述思路一样,有更详细的注释:https://leetcode.com/discuss/60618/neat-java-solution-using-binary-search
0 0
- 【leetcode】Array——Search in Rotated Sorted Array II(81)
- Leetcode 81 - Search in Rotated Sorted Array II(二分)
- LeetCode——Search in Rotated Sorted Array II
- LeetCode——Search in Rotated Sorted Array II
- leetcode 081 —— Search in Rotated Sorted Array II
- LeetCode: Search in Rotated Sorted Array II
- LeetCode Search in Rotated Sorted Array II
- LeetCode : Search in Rotated Sorted Array II
- [LeetCode] Search in Rotated Sorted Array II
- [Leetcode] Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- [LeetCode]Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- LeetCode-Search in Rotated Sorted Array II
- LeetCode - Search in Rotated Sorted Array II
- 【Leetcode】Search in Rotated Sorted Array II
- Leetcode: Search in Rotated Sorted Array II
- 【leetcode】Search in Rotated Sorted Array II
- spring官网下载地址
- ScrollView跳至前一个或者指定位置
- C# WebService (三)SMTP邮件发送功能
- [iOS]EXC_BAD_ACCESS的本质详解以及僵尸模式调试原理
- 震动
- 【leetcode】Array——Search in Rotated Sorted Array II(81)
- iOS开发解决UITableViewCell和添加侧滑手势冲突的问题
- iOS block的理解
- android 的Activity和Service之间的通信
- PHPExcel导入导出Excel文件
- iOS项目不支持横屏的前提下某个界面横竖屏(旋转)的解决方案
- leetcode 313. Super Ugly Number
- 向scrapy中的spider传递参数的几种方法
- python处理excel