33.在旋转排序的数组中查找某值位置
来源:互联网 发布:java流行框架2017 编辑:程序博客网 时间:2024/06/07 01:35
Search in Rotated Sorted Array
问题描述;
Suppose an array sorted in ascending order 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.
知识补充:
测试代码:
int search(vector<int>& nums, int target) { for(int i=0;i<nums.size();i++) { if(nums[i]==target) { return i; } } return -1; }
性能:
参考答案:
int lo = 0; int hi = A.length - 1; while (lo < hi) { int mid = (lo + hi) / 2; if (A[mid] == target) return mid; if (A[lo] <= A[mid]) { if (target >= A[lo] && target < A[mid]) { hi = mid - 1; } else { lo = mid + 1; } } else { if (target > A[mid] && target <= A[hi]) { lo = mid + 1; } else { hi = mid - 1; } } } return A[lo] == target ? lo : -1;
性能:
阅读全文
0 0
- 33.在旋转排序的数组中查找某值位置
- 在旋转后的排序数组中查找
- 在旋转后的排序数组中进行查找
- 在一个有序的旋转数组中,查找给定值
- 【leetcode】在旋转排序数组中查找(二分)
- 人人都来写算法 之 在旋转数组中查找值并返回该值在数组中的位置
- js 查找某个值在数组中出现的位置
- 在旋转之后的已排序数组中查找一个数字
- 在旋转之后的已排序数组中查找一个数字
- 在旋转之后的已排序数组中查找一个数字
- 在排序的数组中二分查找一个元素,返回在数组中它第一次出现的位置
- 在已排序的数组中查找
- 旋转排序数组查找
- 在一个旋转有序数组中,查找最小的数
- 在旋转数组中查找某个数
- 求旋转有序数组的最小值和在旋转数组中查找
- (二分查找思想)从有序递增旋转数组45679123 中找到数字6的位置
- 冒泡排序:在随机产生的数组中查找最值,实现数组的排序
- ConstraintLayout学习总结
- C++ private public protected
- gulp-uglify《JS压缩》
- Leetcode算法学习日志-241 Different Ways to Add Parentheses
- websphere服务四:创建概要文件、删除概要文件
- 33.在旋转排序的数组中查找某值位置
- c#通用配置文件读写类(xml,ini,json)
- 【SQL】连接(五):交叉连接
- HttpUrlConnection进行跨应用请求
- docker在windows下的安装和配置
- Leftmost Digit
- opengl es 纹理
- HDU-4857逃生(反向拓扑排序)(重点是思想)
- log4j2.x架构分析与实战