字符串算法——旋转数组中查找目标值(Search in Rotated Sorted Array)
来源:互联网 发布:消费金融用户数据画像 编辑:程序博客网 时间:2024/06/08 01:52
问题:
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.
解决思路:如果不考虑复杂度,可以对数组每个元素进行比较,看是否存在查找的目标值,如果考虑复杂度,可以利用数组原来有序的先验知识,必然数组一边是有序的,一边是无序的,使用二分查找的方法。
class Solution { public int search(int[] nums, int target) { int len = nums.length; if(len==0)return -1; return dfs(nums,target,0,len-1); } private int dfs(int []nums,int target,int min,int max){ if(min>max){ return -1; } int mid = (min+max)/2;//中间索引 if(nums[mid] ==target)return mid; if(nums[mid]>nums[min]){//中间索引左侧是有序的 if(nums[mid]>target && nums[min]<target){//落在索引左侧 return dfs(nums,target,min+1,mid-1); } if(nums[min] == target){ return min; } return dfs(nums,target,mid+1,max);//落在索引右侧 }else {//索引右侧是有序的 if(nums[mid]<target && nums[max]>target){//落在索引右侧 return dfs(nums,target,mid+1,max-1); } if(nums[max] ==target){ return max; } return dfs(nums,target,min,mid-1);//落在索引左侧 } }}
阅读全文
0 0
- 字符串算法——旋转数组中查找目标值(Search in Rotated Sorted Array)
- 字符串算法——旋转数组中查找目标值(有重复元素)( Search in Rotated Sorted Array II)
- LeetCode @ Search in Rotated Sorted Array 旋转数组查找
- Search in Rotated Sorted Array-旋转数组的查找
- 字符串算法——查找有序数组旋转后的最小值(无重复元素)(Find Minimum in Rotated Sorted Array)
- 字符串算法——查找有序数组旋转后最小值(有重复元素)(Find Minimum in Rotated Sorted Array II)
- LeetCode Search in Rotated Sorted Array 在旋转了的数组中查找
- Search in Rotated Sorted Array 在旋转的数组中查找元素
- Search in Rotated Sorted Array II 旋转的数组中查找,有重复元素
- LeetCode | Search in Rotated Sorted Array(在旋转数组中查找)
- LeetCode------33. Search in Rotated Sorted Array(旋转数组中查找)
- 数组-Search in Rotated Sorted Array(在一个旋转的数组中查找想要的值的指针)
- 查找已排序的旋转后的数组中的数(Search in Rotated Sorted Array)
- Search in Rotated Sorted Array 旋转数组里查找数 @LeetCode
- Leetcode--Search in Rotated Sorted Array(旋转数组的查找)
- 【LeetCode刷题】旋转数组的查找 Search in Rotated Sorted Array
- Search in Rotated Sorted Array II 旋转数组二分查找 有重复
- leetCode 33.Search in Rotated Sorted Array(排序旋转数组的查找) 解题思路和方法
- jvm系列(二):JVM内存结构
- css引入特殊字体
- Docker实战:镜像与容器基础命令
- css定位之position
- 命令模式坚决svn树冲突(local unversioned, incoming add upon update)
- 字符串算法——旋转数组中查找目标值(Search in Rotated Sorted Array)
- 单行左右两边的对称布局的更好的实现方式
- Idea 报错 <statement> or delimiter expected
- 文章标题
- DirectShow在VS2015中PVOID64问题和配置问题
- 实验二间接寻址
- 自定义样式View(二)--自定义Button
- spring cloud分布式云架构
- 火热的生成对抗网络(GAN),你究竟好在哪里