leetcode 33. Search in Rotated Sorted Array (复杂二分查找)
来源:互联网 发布:2017手机淘宝主图尺寸 编辑:程序博客网 时间:2024/09/21 09:00
题意:
给你一个无重复元素的递增数组,这个数组后来被左移或者右移了未知步数,形成新的数组,让你找到target所在位置,如果不存在则返回-1;
思路:
同样可以使用二分查找,但是要考虑多种情况。
情况首先分为两大类:
1.中间元素大于等于左边界的值,(说明从左到中间是绝对递增的。
2.中间元素小于左边界的值(说明从中间到右边是绝对递增的。
然后每种情况考虑target值的可能位置即可确定下次二分查找在哪个区间执行。
java代码:
class Solution { public int search(int[] nums, int target) { int r = nums.length; if(r==0){ return -1; } int l = 0; r -= 1; while(l<=r){ int mid = (l+r)>>1; if(target==nums[mid]){ return mid; } if(nums[mid]>=nums[l]){ if(target<nums[mid]&&target>=nums[l]){ r = mid-1; } else{ l = mid+1; } } else{ if(target>nums[mid]&&target<=nums[r]){ l = mid+1; } else{ r = mid-1; } } } return -1; }}
阅读全文
1 0
- leetcode 33. Search in Rotated Sorted Array (复杂二分查找)
- leetcode 33. Search in Rotated Sorted Array(二分查找)
- leetcode 33. Search in Rotated Sorted Array 二分查找
- leetcode 二分查找 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---search-in-rotated-sorted-array---查找
- 二分查找 检查边界条件 Leetcode 33. Search in Rotated Sorted Array
- [LeetCode]33.Search in Rotated Sorted Array
- LeetCode --- 33. Search in Rotated Sorted Array
- LeetCode 33.Search in Rotated Sorted Array
- [Leetcode] 33. Search in Rotated Sorted Array
- Leetcode-33.Search in Rotated Sorted Array.
- [leetcode] 33. Search in Rotated Sorted Array
- Leetcode 33. Search in Rotated Sorted Array
- [LeetCode]33. Search in Rotated Sorted Array
- leetcode 33. Search in Rotated Sorted Array
- C语言输出不同颜色字体
- iOS经典讲解之开发者账号对比
- jvisualvm插件的使用
- 同步,异步,阻塞,非阻塞
- python urllib2
- leetcode 33. Search in Rotated Sorted Array (复杂二分查找)
- 删除页眉上的横线和删除分页符
- gdb调试之多进程/多线程篇
- 依赖,libry
- 【DevExpress v17.2新功能预告】增强ASP.NET GridView的功能
- 谷歌移动端深度学习框架TensorFlow Lite正式发布
- 24时区来源,CST,CET,UTC,DST,Unix时间戳概述、关系、转换
- Android8.0 WIFI ap Tethering 相关知识
- Android 文本视图TextView