
寻找旋转数组的最小数字
检查特殊情况:如果数组为空,返回-1;如果数组只有一个元素,直接返回该元素。 检查是否旋转:如果数组的最后一个元素等于第一个元素,说明数组已经旋转了多次,直接返回第一个元素。 二分法寻找分界点:使用二分法找到第一个比第一个元素小的元素的位置。这个位置就是分界点。 确定最小值:从分界点开始,到数组末尾,找到最小的元素作为结果。 检查特殊情况:首先处理数组为空和只有一个元素的情况。 检查是否旋转:如果数组的最后一个元素等于第一个元素,说明没有旋转,直接返回第一个元素。 二分法寻找分界点:通过二分法找到第一个比第一个元素小的位置,确定分界点。 确定最小值:从分界点开始,到数组末尾,找到最小的元素作为结果。
发布日期:2021-05-10 10:39:04
浏览次数:22
分类:精选文章
本文共 1217 字,大约阅读时间需要 4 分钟。
为了解决这个问题,我们需要找到一个旋转后的升序数组中的最小值。旋转后的数组会有一个分界点,分界点前面的元素都比后面的元素大或者等于,而分界点后面的元素都比前面的元素小或者等于。我们可以利用二分法来高效地找到这个分界点,然后确定最小值。
方法思路
解决代码
#includeusing namespace std;int findMin(vector & nums) { if (nums.empty()) return -1; int n = nums.size(); if (n == 1) return nums[0]; int first = nums[0]; if (nums.back() == first) return first; int left = 0, right = n - 1; while (left < right) { int mid = left + (right - left) / 2; if (nums[mid] < first) { right = mid; } else { left = mid + 1; } } if (nums[left] < first) { int min_val = nums[left]; for (int i = left; i < n; ++i) { if (nums[i] < min_val) { min_val = nums[i]; } } return min_val; } else { return first; }}
代码解释
这种方法确保在O(log n)时间复杂度内找到分界点,然后在O(n)时间复杂度内找到最小值,整体时间复杂度为O(n log n),适用于大规模数据。
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月27日 16时22分11秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2025版最新关于HW护网行动的一些知识,零基础入门到精通,收藏这篇就够了
2023-01-25
(建议收藏)2024最新 URL Scheme大全APP跳转界面地址更新中 ios快捷指令快捷方式链接跳转微信小程序必备autojs可用免root (可定制开发和提取URL Scheme 参数提取)
2023-01-25
2025版最新大模型学习路线,零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新大模型开发流程(非常详细)零基础入门到精通,收藏这一篇就够了
2023-01-25
(干货)数据分析案例--以上海二手房为例
2023-01-25
(大部分安卓手机通用)一加OnePlus Ace3扬声器优化教程 外放直接媲美苹果
2023-01-25
2025版最新大模型微调方法(非常详细)零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新大模型算法岗位薪资指南,零基础入门到精通,收藏这一篇就够了
2023-01-25
2025版最新大语言模型的指令微调,零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新小白学习大模型:什么是大模型?零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新常用黑客工具之【Nmap 教程基础】零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新开发一款大模型需要经过哪些步骤?开发一款大模型的完整流程,收藏这篇就够了
2023-01-25
$.inArray函数判断数组中的是否包含字符串
2023-01-25
2025版最新渗透测试和黑客工具列表,零基础入门到精通,收藏这一篇就够了
2023-01-25
2025版最新网络安全入门书籍整理大全,零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新网络安全知识入门及学习流程(非常详细)零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新网络安全等级保护测评指南,零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新运维怎么转行网络安全?零基础入门到精通,收藏这篇就够了
2023-01-25