题目
题目链接: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. 旋转数组的最小数字-(二分法)》对你有帮助,请点赞、收藏,并留下你的观点哦!