寻找旋转排序数组中的最小值

xiaoxiao2021-02-28  55

假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。 返回 0 用二分法解决 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。

public class Solution { /** * @param nums: a rotated sorted array * @return: the minimum number in the array */ public int findMin(int[] nums) { // write your code here int begin = 0; int end = nums.length - 1; int mid; if(nums[begin]<nums[end]){ return nums[begin]; } while(begin < end){ mid = (begin+end)/2; if(nums[mid]>nums[end]) begin = mid+1; else end = mid; } return nums[end]; } }
转载请注明原文地址: https://www.6miu.com/read-65734.html

最新回复(0)