Search in Rotated Sorted Array II
来源:互联网 发布:ios编程软件 编辑:程序博客网 时间:2024/06/08 05:33
这道题目类型不少,一般情况下是能写出来的。但写的复杂,时间长。
切入点要放在中间元素和端点元素的比较上,并依此进行情况的分类。
传统的二分主要是比较中间元素,然后决定前进的方向。这里相当于多了一层判断。
1.先判断已排序的部分,2,在确定前进的方向,3,所谓前进就是left和right的值的更新。
最坏的情况下对退化为线性。
简洁的代码:https://oj.leetcode.com/discuss/223/when-there-are-duplicates-the-worst-case-is-could-we-do-better
bool search(int A[], int n, int key) { int l = 0, r = n - 1; while (l <= r) { int m = l + (r - l)/2; if (A[m] == key) return true; //return m in Search in Rotated Array I if (A[l] < A[m]) { //left half is sorted if (A[l] <= key && key < A[m]) r = m - 1; else l = m + 1; } else if (A[l] > A[m]) { //right half is sorted if (A[m] < key && key <= A[r]) l = m + 1; else r = m - 1; } else l++; } return false;}
0 0
- LeetCode: Search in Rotated Sorted Array II
- 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
- Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- [LeetCode]Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- LeetCode-Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- LeetCode - Search in Rotated Sorted Array II
- 【Leetcode】Search in Rotated Sorted Array II
- [Hb-XIII] 编写、应用中断例程
- 【BZOJ】【P2631】【tree】【题解】【LCT】
- MFC内嵌web页面
- Oracle E-Business Suite Release 12.2 Information Center - Manage
- GridView如何适配不同屏幕
- Search in Rotated Sorted Array II
- 崩溃恢复(crash recovery)与 AUTORESTART参数
- Emacs学习笔记
- 访问不了共享文件夹的解决问题
- Oracle E-Business Suite Maintenance Guide Release 12.2(Patching Utilities)
- linux学习之(五)-linux文解压、压缩、安装
- Queue
- HDU 2544 最短路【经典题】
- Oracle E-Business Suite Maintenance Guide Release 12.2(Patching Procedures)