旋转排序数组问题的思考

有序数组旋转后的查找问题

看到牛客上有些人的做法虽然简单但是不容易想到,这里分享一个常规思路,二分查找有序一端。在有序数组旋转后的问题上都可以使用

举例

有序数组旋转形如:4,5,6,7,0,1,2 或者 [3,4,5,1,2],要求查找 min 或者 target ,复杂度要做到O(logn),可以使用这种方法;

核心

以Mid二分,那么总有一个区间是有序的:

比如 4,5,6,7,0,1,2中: mid = nums3 = 7,4,5,6有序;

如何判断哪边有序?if(nums[left] <= nums[mid]) ;此时left, mid就是有序的,相反mid, right有序;

确定有序端后:

比如left, mid有序,查找target,那么就判断target是否在有序这段,如果在,right = mid - 1;如果不在,left = mid + 1; 另一端有序也是这样处理;

总结

这种解决方法很简单也很好理解,并且在处理排序数组旋转的问题上具有普遍适用性。

可以用这种方法练手力扣33、153两道题;秒杀

相关推荐
海石12 小时前
1500分的题目,确实有实力,不过还是我略胜一筹
算法·leetcode
海石12 小时前
【记忆化搜索】条条大路通AC,走好适合你的那一条,走到后再考虑走得快
算法·leetcode
Jerry13 小时前
LeetCode 151. 反转字符串中的单词
算法
gugucoding14 小时前
31. 【C语言】堆栈与队列的实现
c语言·开发语言·数据结构·链表
ChaoZiLL15 小时前
我的数据结构3——链表(link list)
数据结构·链表
a11177616 小时前
LM 算法迭代过程动画演示(SLAM)
算法
头茬韭菜16 小时前
Context 的生死抉择:四层压缩、截断算法与 Session Memory
算法·ai
Jerry16 小时前
LeetCode 541. 反转字符串 II
算法
Jerry17 小时前
LeetCode 344. 反转字符串
算法
搞科研的小刘选手17 小时前
【香港大学主办&IEEE出版】第六届计算机视觉、应用与算法国际学术会议(CVAA 2026)
算法·计算机视觉·应用·学术会议