• LeetCode 153.Find Minimum in Rotated Sorted Array(M)(P)


    题目:

    Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

    (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

    Find the minimum element.

    You may assume no duplicate exists in the array.

    思路:

    1.题目中指出sorted array,find target使用二分法。

    2.分为以下三种情况

    (1)数组只有一个元素:nums[0]即为最小值。

    (2)数组不是rotated sorted array,退化为sorted array:nums[0]即为最小值。

    (3)数组是rotated sorted array:nums[start] > nums[end]:

    a:nums[mid]大于nums[start].

    b:nums[mid]小于nums[start].

    代码:

     1 public class Solution {
     2     public int findMin(int[] nums) {
     3         int start = 0,end = nums.length-1,mid = 0;
    //length equals 1;
    4 if(nums.length == 1){ 5 return nums[0]; 6 }
    //is rotated sorted array;
    7 while(nums[start] > nums[end] && start + 1 < end){ 8 mid = start + (end - start)/2; 9 if(nums[mid] > nums[start]){ 10 start = mid; 11 }else if(nums[mid] < nums[start]){ 12 end = mid; 13 } 14 }
    //is not rotated sorted array;
    15 if(nums[start] < nums[end]){ 16 return nums[start]; 17 } 18 return nums[end]; 19 } 20 }
  • 相关阅读:
    (四)rsync未授权访问
    (前言一)HTTP报文
    (一)会话固定攻击
    使用Burp、PhantomJS进行XSS检测
    win10配置环境变量
    java学习网站http://how2j.cn/
    镜像下载
    jQuery
    jQuery
    jQuery
  • 原文地址:https://www.cnblogs.com/melbourne1102/p/6646778.html
Copyright © 2020-2023  润新知