leetcode-二分搜索:Search in Rotated Sorted Array
来源:互联网 发布:西安网络推广外包 编辑:程序博客网 时间:2024/06/16 04:44
题目介绍
在一个部分排序的数组中,查找目标值。部分排序的数组的形式如下
0,1,2,3,4,5,6,7->4,5,6,7,0,1,2
如果搜索到目标值则返回目标值的索引,否则返回-1
思路:
- 首先找到临界的索引index,例如什么的例子中的临界索引为3
- 判断目标值所在的区间是[0,index], 还是在[index+1, N]
- 在含有目标值的区间内使用二分搜索
代码如下
/************************************************************************* > File Name: bisearch.cpp > Author: ma6174 > Mail: ma6174@163.com > Created Time: 2015年07月13日 星期一 10时47分30秒 ************************************************************************/#include<iostream>#include<math.h>#include<stdlib.h>#include<stdio.h>#include<vector>#include<string>using namespace std;//33int search(vector<int>& nums, int tar){ int piv = 0; int N = (int)nums.size() - 1; for(piv = 0; piv < N; piv++) { if(nums[piv] > nums[piv + 1]) break; } int i, j; if((nums[0] <= tar) && (nums[piv] >= tar)) { i = 0; j = piv; } if((nums[piv + 1] <= tar) && (nums[N] >= tar)) { i = piv + 1; j = N; } while(i <= j) { int mid = (i + j) / 2; if(nums[mid] > tar) j = mid - 1; else if(nums[mid] < tar) i = mid + 1; else return mid; } return -1;}int main(int arvc, char** argv){ int in = atoi(argv[1]); vector<int> r; r.push_back(4); r.push_back(5); r.push_back(6); r.push_back(7); r.push_back(0); r.push_back(1); r.push_back(2); int id = search(r, in); printf("id = %d\n", id); return 0;}
0 0
- leetcode-二分搜索:Search in Rotated Sorted Array
- leetcode 二分查找 Search in Rotated Sorted Array
- LeetCode 33 Search in Rotated Sorted Array (二分查找 推荐)
- LeetCode 81 Search in Rotated Sorted Array II (二分)
- leetcode 33. Search in Rotated Sorted Array(二分查找)
- [LeetCode 33]Search in Rotated Sorted Array (二分查找)
- Leetcode 33 - Search in Rotated Sorted Array(二分)
- Leetcode 81 - Search in Rotated Sorted Array II(二分)
- leetcode 33. Search in Rotated Sorted Array 二分查找
- leetcode 81. Search in Rotated Sorted Array II 二分查找
- leetcode 33. Search in Rotated Sorted Array (复杂二分查找)
- [leetcode][search] Search in Rotated Sorted Array
- 【二分】Search in Rotated Sorted Array
- 【二分】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 II
- 九度oj 1000
- Android Fragment 真正的完全解析
- 迭代器失效问题(转)
- Joint关节
- 报错Application windows are expected to have a root view controller at the end of application launc
- leetcode-二分搜索:Search in Rotated Sorted Array
- php mail函数发送邮件header过长
- PullScrollView,PullListView, PullGridView 等进入自动下拉刷新
- Android网络编程之Http请求服务器数据(POST方式)
- 诸葛告诉你一个真实的产品经理是什么样的!
- 2012年5月SAT香港真题解析
- 多态工厂的实现--工厂方法模式
- iOS8使用TestFlight进行内部测试功能尝鲜
- hive 模拟update 操作