• 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 }
  • 相关阅读:
    数学—快速幂
    离散化
    造树计划——线段树
    Python map()函数
    python的discard和remove方法
    C++学习笔记之NULL vs nullptr
    哈姆雷特单词的排名
    读书笔记—《网络是怎么连接的》4.11
    滑动窗口—UVA11572 唯一的雪花 Unique Snowflakes
    javascript基础语法1.0
  • 原文地址:https://www.cnblogs.com/eva_sj/p/4102618.html
Copyright © 2020-2023  润新知