题目描述
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
1 package newcoder; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 6 public class Main06 { 7 8 /* 9 * 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 10 * 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 11 * 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 12 * NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 13 */ 14 15 public static void main(String[] args) { 16 // TODO Auto-generated method stub 17 int[] array = {3,4,5,1,2}; 18 int min = minNumberInRotateArray(array); 19 System.out.println(min); 20 } 21 22 public static int minNumberInRotateArray(int [] array) { 23 if(array.length == 0) { 24 return 0; 25 } 26 int k = 0; 27 ArrayList<Integer> list = new ArrayList<Integer>(); 28 for(int i=0;i<array.length;i++) { 29 list.add(array[i]); 30 } 31 Integer min = Collections.min(list); 32 return min; 33 // for(Integer i : list) { 34 // if(min == i) { 35 // break; 36 // } 37 // k++; 38 // } 39 // System.out.println(k); 40 // Collections.rotate(list,-k); 41 // return 1; 42 } 43 44 }
这道题目思路就是把数组转换成集合,再利用Collections集合工具类进行操作。
如果没有了解过Collections工具类的话可以先去看一下,因为用到Collections工具类里面的有几个静态方法可以跟快的找到一个集合中的最小值。
emmmmmm,就连旋转都省去了。