首页 > 代码库 > Find Minimum in Rotated Sorted Array
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 }
Find Minimum in Rotated Sorted Array
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。