旋转数组的最小数字
Posted strive-19970713
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了旋转数组的最小数字相关的知识,希望对你有一定的参考价值。
题目描述
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组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,就连旋转都省去了。
以上是关于旋转数组的最小数字的主要内容,如果未能解决你的问题,请参考以下文章