[Leetcode 81, Medium] Search in Rotated Sorted Array II
2015-07-26 10:41
513 查看
Problem:
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.
Analysis:
Solutions:
C++:
Python:
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.
Analysis:
Solutions:
C++:
bool search(vector<int> A, int target) { int n = A.size(); if(n == 0) return false; for(int start = 0, end = n -1; start <= end;) { for(;start < end && A[start + 1] == A[start];) ++start; for(; end > start && A[end - 1] == A[end];) --end; if(A[start] == target) return true; else if(A[end] == target) return true; if(start >= end - 1) break; int mid = (start + end) / 2; if(A[mid] == target) return true; else if(A[mid] >= A[start] && A[mid] >= A[end]) { for(;mid >= start && A[mid - 1] == A[mid];) --mid; if(target > A[start] && target < A[mid]) end = mid; else start = mid; } else { for(;mid <= end && A[mid + 1] == A[mid];) ++mid; if(target > A[mid] && target < A[end]) start = mid; else end = mid; } } return false; }Java:
Python:
相关文章推荐
- C++中UINT32和INT32以及int,BOOL和bool的区别
- Android和JS代码互相调用
- Scala并发编程原生线程Actor、Case Class下的消息传递和偏函数实战解析
- 域名301跳转
- 去除xp系统桌面图标蓝色背景方法
- 【ID搜索】uva529Addition Chains
- Android中保存和恢复Fragment状态的最好方法
- 自己动手(一)──可拖动排序的 ListView(3)
- VS2010和Matlab2012b混合编程 配置详解
- hadoop edits 文件损坏修复办法
- [题解+总结]20150314
- google mock C++单元测试框架
- windows电脑变成wifi热点命令
- Faster R-CNN
- git 分支
- xss攻击原理
- RMAN 备份详解
- Scala详解---------对象
- 解决jQuery和其他库的冲突
- hdu 1272 小希的迷宫