抑郁症健康,内容丰富有趣,生活中的好帮手!
抑郁症健康 > (day05)剑指 Offer 11. 旋转数组的最小数字-(二分法)

(day05)剑指 Offer 11. 旋转数组的最小数字-(二分法)

时间:2021-07-16 14:16:40

相关推荐

题目

题目链接:https://leetcode-/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/

题解

暴力法

这是作为菜鸟的我使用的方法,直接用迭代或者使用内置函数找到最小值直接返回,时间复杂度O(n)。

class Solution {public int minArray(int[] numbers) {return Arrays.stream(numbers).min().getAsInt();}}

二分法

使用暴力法当数据规模很大时必然会对性能影响很大,对于有序列表元素的查找我们就应该想到能不能使用二分查找解决,应为二分法可将时间复杂度降到O(log2(n))。

思路分析:

https://leetcode-/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/solution/mian-shi-ti-11-xuan-zhuan-shu-zu-de-zui-xiao-shu-3/

class Solution {public int minArray(int[] numbers) {// 二分法 时间复杂度为:O(log2n)public static int minArray1(int[] numbers) {int l=0,r=numbers.length-1;int mid;while (l < r){mid = (l + r)/2;if (numbers[mid] < numbers[r]){r = mid;}else if (numbers[mid] > numbers[r]){l = mid + 1;}else {r --;}}return numbers[l];}}}

如果觉得《(day05)剑指 Offer 11. 旋转数组的最小数字-(二分法)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。