Leetcode : Search in Rotated Sorted Array
来源:互联网 发布:老鼠仓软件 编辑:程序博客网 时间:2024/06/16 01:46
原题:
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7
might become 4 5 6 7 0 1 2
).
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.
题目的意思是说在一个翻转过的数组中搜索一个给定的数字,如果该数字存在则返回该数字的下标,如果不存在则返回-1。数组中的元素是唯一的。刚开始采用了暴力搜索,时间复杂度为O(n),居然通过了。后来在网上找了一个二分查找的算法,时间复杂度为O(lgn),也通过了。查看两种算法的运行时间居然是一样的,这不科学啊。估计测试数据的量太小的原因。
好了,下面说一下二分搜索算法的思路吧
这个数组有个性质:在翻转轴之前的数字都比之后的数字大.
直接贴代码吧,代码中有详细的注释:
int search(int A[], int n, int target) {int first = 0, last = n;while(first != last){int mid = (first + last)/2;//取中间位置if(A[mid] == target) //如果找到就直接返回return mid;if(A[first] < A[mid]){ //如果first位置的值小于mid位置的值,说明这之间的数组是有序的if(A[first] <= target && target < A[mid])//如果目标数值位于first和mid之间last = mid;else{ //如果不在first和mid之间first = mid + 1;}}else{ //如果first位置的值大于mid位置的值,说明mid位于翻转轴之后,last位置的数大于mid位置的数。 //也即mid和last之间的数组是有序的if(A[mid] < target && target <= A[last-1]) //目标数据在mid和last之间first = mid + 1;else last = mid;}}return -1;}
0 0
- [leetcode][search] Search in Rotated Sorted Array
- LeetCode: Search in Rotated Sorted Array
- LeetCode: Search in Rotated Sorted Array II
- LeetCode Search in Rotated Sorted Array
- LeetCode Search in Rotated Sorted Array II
- [Leetcode] Search in Rotated Sorted Array
- LeetCode : Search in Rotated Sorted Array
- LeetCode : Search in Rotated Sorted Array II
- [LeetCode] Search in Rotated Sorted Array II
- [LeetCode] Search in Rotated Sorted Array
- [Leetcode] Search in a Rotated Sorted Array
- [Leetcode] Search in Rotated Sorted Array II
- leetcode 97: Search in Rotated Sorted Array
- [LeetCode] Search in Rotated Sorted Array
- [leetcode] Search in Rotated Sorted Array
- [leetcode] Search in Rotated Sorted Array II
- Leetcode Search in Rotated Sorted Array
- [LeetCode]Search in Rotated Sorted Array
- 字符串转整数问题
- 在Qt中用QAxObject来操作Excel
- 判断字符串中的括号是否匹配
- 离线下载Android SDK Manager Package
- Fragment+ViewPager实现类似ActionBar切换的效果
- Leetcode : Search in Rotated Sorted Array
- 技术-阅读器的书架实现
- Android动画效果之渐入渐出
- Xcode的Architectures、Valid Architectures和Build Active Architecture Only属性
- UVALive - 2728 A Spy in the Metro DP
- 《算法帝国》——华尔街,第一张多米诺骨牌
- WebView总结
- Activity生命周期
- 3.9.1指数计数法