Search in Rotated Sorted Array II
2015-07-02 20:31
239 查看
描述
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[first]==nums[mid]时,无法判断元素的序列是否递增,也无法找到转折点如 131111111怎么找?
所以要单独分析,那就只能将first向前推进。
Runtime: 8 ms
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[first]==nums[mid]时,无法判断元素的序列是否递增,也无法找到转折点如 131111111怎么找?
所以要单独分析,那就只能将first向前推进。
class Solution { public: bool search(vector<int>& nums, int target) { int first=0; int last=nums.size()-1; int mid; while(first<=last) { mid=(first+last)/2; if(nums[mid]==target) return true; if(nums[first]<nums[mid]) { if(target>=nums[first]&&target<nums[mid]) last=mid-1; else first=mid+1; } else if(nums[first]>nums[mid]) { if(target>nums[mid]&&target<=nums[last]) first=mid+1; else last=mid-1; } else first++; } return false; } };
Runtime: 8 ms
相关文章推荐
- iOS学习笔记(6)UINavigationController
- 贝叶斯方法及其应用(2)
- Hadoop入门系列(1) -- Hadoop简介
- 2、cd命令
- 【JSP】<meta>标签用法
- U盘启动盘制作工具分享: 大白菜
- iOS学习笔记 (5)NSDate和NSTimer
- U盘启动盘制作工具分享: 大白菜
- linux下svn的用法
- Android5.0L因SystemUI ANR导致的黑屏问题分析
- 《约会专家》拖车【约会宝典】总结
- java8--stream
- 四则运算1
- iOS学习笔记(4)UIView和UIImageView
- shell脚本(三)
- jira搭建
- uc/os-ii信号量
- 网络编程之获取主机名称与IP地址
- 举例说,Linux核心名单(两)
- NYOJ 28 大数阶乘