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

     1 package leetcode;
     2 /* *
     3  * 注意问题:
     4  * 1. 原序列升序、降序问题,两种情况都要考虑
     5  * 2. 边界问题,如果只有两个元素时要单独考虑,在num[mid]==num[left]判断中考虑
     6  * 3. 采用2叉查找的思想
     7  * */
     8 public class findMinInRotatedSortedArray {
     9     public int findMin(int[] num)
    10     {
    11         
    12         int left=0;
    13         int right=num.length-1;
    14         if(num[left]>num[right])//原序列是升序排列
    15         {
    16             while(left < right)
    17             {
    18                 int mid=(left+right)/2;
    19                 if(num[mid]==num[left])
    20                     left=mid+1;
    21                 else if(num[mid]>num[left])
    22                     left=mid;
    23                 else 
    24                     right=mid;
    25                 
    26             }
    27         }
    28         else //原序列是降序排列
    29         {
    30             while(left < right)
    31             {
    32                 int mid=(left+right)/2;
    33                 if(num[mid]==num[left])
    34                     right=mid-1;
    35                 else if(num[mid]>=num[left])
    36                     right=mid;
    37                 else 
    38                     left=mid;    
    39             }
    40         }
    41         return num[left];
    42     }
    43     public static void main(String[] args)
    44     {
    45         int[] arr=new int[3];
    46         arr[0]=3;
    47         arr[1]=1;
    48         arr[2]=2;
    49         findMinInRotatedSortedArray a=new findMinInRotatedSortedArray();
    50         System.out.println(a.findMin(arr));
    51     }
    52 }
  • 相关阅读:
    小注意1
    javascript求相对路径
    js网页返回顶部和楼层跳跃的实现原理
    函数传值的学习笔记
    每日一题——归并排序
    python文件处理
    Docker数据卷
    Docker镜像原理
    Docker可视化之Portainer
    Docker部署Nginx、Tomcat
  • 原文地址:https://www.cnblogs.com/eva_sj/p/4102618.html
Copyright © 2011-2022 走看看