62.Search in Rotated Sorted Array-搜索旋转排序数组(中等题)
来源:互联网 发布:cs1.5优化教程视频 编辑:程序博客网 时间:2024/04/30 08:43
搜索旋转排序数组
题目
假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。
你可以假设数组中不存在重复的元素。
样例
给出[4, 5, 1, 2, 3]和target=1,返回 2
给出[4, 5, 1, 2, 3]和target=0,返回 -1题解
旋转排序数组特点是有两段单调递增数组,所以在使用二分法的过程中需要判断target位于哪一个递增区间内。
public class Solution { /** *@param A : an integer rotated sorted array *@param target : an integer to be searched *return : an integer */ public int search(int[] A, int target) { if (A == null || A.length == 0) { return -1; } int start = 0; int end = A.length - 1; int mid; while (start <= end) { mid = start + (end - start) / 2; if (A[mid] == target) { return mid; } if (A[start] < A[mid]) { if (A[start] <= target && target <= A[mid]) { end = mid-1; } else { start = mid+1; } } else { if (A[mid] <= target && target <= A[end]) { start = mid+1; } else { end = mid-1; } } } return -1; }}
Last Update 2016.10.1
0 0
- 62.Search in Rotated Sorted Array-搜索旋转排序数组(中等题)
- 63.Search in Rotated Sorted Array II-搜索旋转排序数组 II(中等题)
- [LintCode] 搜索旋转排序数组 Search in Rotated Sorted Array
- 159.Find Minimum in Rotated Sorted Array-寻找旋转排序数组中的最小值(中等题)
- LeetCode 33 Search in Rotated Sorted Array(在旋转排序数组中搜索)(*)
- 160.Find Minimum in Rotated Sorted Array II-寻找旋转排序数组中的最小值 II(中等题)
- [Lintcode] 搜索旋转排序数组 II Search in Rotated Sorted Array II
- [Lintcode] Search in Rotated Sorted Array II 搜索旋转排序数组 II
- 【LeetCode-面试算法经典-Java实现】【081-Search in Rotated Sorted Array II(搜索旋转的排序数组)】
- LeetCode 33. Search in Rotated Sorted Array(旋转数组搜索)
- LeetCode 81. Search in Rotated Sorted Array II(搜索旋转的数组)
- 查找已排序的旋转后的数组中的数(Search in Rotated Sorted Array)
- leetcode 刷题之路 35 Search in Rotated Sorted Array II (旋转排序数组查找终极版)
- leetcode 6. 在有序数组旋转后搜索 Search in Rotated Sorted Array
- leetcode 7. 在有序可重复数组旋转后搜索 Search in Rotated Sorted Array II
- leetCode 81.Search in Rotated Sorted Array II (旋转数组的搜索II) 解题思路和方法
- 【LeetCode-面试算法经典-Java实现】【033-Search in Rotated Sorted Array(在旋转数组中搜索)】
- 【LeetCode-面试算法经典-Java实现】【033-Search in Rotated Sorted Array(在旋转数组中搜索)】
- 嵌入式系统学习(三)-S5P4418 芯片存储空间分布说明
- Storage Classes in C++ Programming
- 【C/C++语言】指针常量与常量指针的区别
- 【POJ1011】Sticks-DFS+调整法剪枝
- 【myfocus】一款好用的焦点图轮播插件
- 62.Search in Rotated Sorted Array-搜索旋转排序数组(中等题)
- Android之SQLite数据库
- 开发中乱码问题
- 图
- Android版本下载以及切换之 git使用
- Java之接口
- hihocoder 1384 the book list
- 管道流
- Java版的最长公共子序列