zoukankan      html  css  js  c++  java
  • leetcode------Find Minimum in Rotated Sorted Array

    标题: Find Minimum in Rotated Sorted Array
    通过率: 32.8%
    难度: 中等

    Suppose a sorted array 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、start一定大于等于end

    2、若mid大于end时,小元素一定在mid的右边,大元素一定在mid的左边(包含mid),

    3、若mid小于end时,小元素一定在mid的左边(包含mid),大元素一定再mid右边,

    4、若mid等于end时,说明存在重复元素,无法判断时,将start进行++操作,

    示例:{3451}为第二种情况,{23451111}为第四种情况

    如果是{111123451}也为第四种情况,若是一个旋转数组,出现第四种情况时将start++操作,不用去判断加1前是否满足。因为加一前的这个元素一定不是想要的,从举出的例子中可以看出来。

    java代码如下:

     1 public class Solution {
     2     public int findMin(int[] num) {
     3         int start=0,end=num.length-1,mid=0;
     4         while(start<end&&num[start]>=num[end]){
     5             mid=(start+end)/2;
     6             if(num[mid]>num[end]){
     7                 start=mid+1;
     8             }
     9             else end=mid;
    10         }
    11         return num[start];
    12     }
    13 }
  • 相关阅读:
    VMware 创建的虚拟机,Xshell无法进行连接
    Centos7 文件修改详情
    Centos7 selinux关闭
    centos7 RPM命令使用
    centos 操作系统优化
    centos 内存使用情况+负载使用情况
    Centos 修改环境变量
    centos7 系统级别(持续更新)
    centos7 常规修改信息(比较杂的)持续更新
    centos7 修改网卡信息
  • 原文地址:https://www.cnblogs.com/pkuYang/p/4292633.html
Copyright © 2011-2022 走看看