旋转数组的最小数字

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,就连旋转都省去了。

以上是关于旋转数组的最小数字的主要内容,如果未能解决你的问题,请参考以下文章

《剑指offer》— JavaScript旋转数组的最小数字

旋转数组的最小数字

剑指 Offer 11. 旋转数组的最小数字 的详细题解

剑指offer旋转数组的最小数字

剑指offer——旋转数组的最小数字

剑指OFFER旋转数组的最小数字