价值30万的网站建设,导游网站后台,杭州建设厅官网,江西省城乡建设厅建设网站153 寻找旋转排序数组中的最小值
这道题#xff0c;如果我们熟悉数组 api#xff0c;可以直接用 Arrays.sort()秒杀#xff0c;这个方法使用了双轴快速排序算法。
解法1如下#xff1a;
class Solution {public int findMin(int[] nums) {Arrays.sort(nums);return nums…153 寻找旋转排序数组中的最小值
这道题如果我们熟悉数组 api可以直接用 Arrays.sort()秒杀这个方法使用了双轴快速排序算法。
解法1如下
class Solution {public int findMin(int[] nums) {Arrays.sort(nums);return nums[0]; }
}
第二种解法看到时间复杂度为O(log^n)我们第一时间应该想到二分查找
class Solution {public int findMin(int[] nums) {int left 0;int right nums.length - 1; while (left right){int mid left (right - left) / 2;if(nums[mid] nums[right]) {left mid 1;} else{right mid;}}return nums[left];}
}通过不断收缩查询区间范围来快速找到想要的数据解决方法如下