旋转排序数组问题的思考

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

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

举例

有序数组旋转形如: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两道题;秒杀

相关推荐
Hi李耶3 分钟前
【LeetCode】557.反转字符串中的单词 III
算法·leetcode·职场和发展
yyy(十一月限定版)5 分钟前
016【入门】双端队列
数据结构·c++
深蓝学院9 分钟前
机器人学习算法五大体系详解:模仿、强化、多模态、持续学习……
算法·机器人
白狐_79824 分钟前
408数据结构:中缀转后缀与操作符栈容量——真题精讲
前端·javascript·数据结构
2401_8582861131 分钟前
OS82.【Linux】设计线程池
java·linux·运维·服务器·开发语言·算法·线程池
Epiphany.5561 小时前
找到所有好字符串(记忆化搜索+KMP)(里面含KMP模板,用来入门)
算法
坚持编程的菜鸟1 小时前
模拟实现strncpy
c语言·算法·模拟实现strncpy
Iruoyaoxh2 小时前
数据结构排序
数据结构
来一碗刘肉面3 小时前
图的基本操作
数据结构
深圳市快瞳科技有限公司3 小时前
个体识别、行为解读、健康管理:多模态宠物AI大模型的场景化落地
人工智能·算法·计算机视觉·大模型·多模态·宠物·宠物ai识别