《剑指offer》-输出旋转数组的最小元素
2018-01-27 09:17
260 查看
/* * 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 * 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 * 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 * NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 * */ import java.util.*; public class MinNumberInRotateArray { //法一:直接排序,但是这样做会丧失题目意义。 public int minNumberInRotateArray(int [] array) { int length = array.length; if(length == 0) return 0; else{ Arrays.sort(array); return array[0]; } } //法二:把最开始的若干个元素搬到数组的末尾,原来递增的数组一定会出现一个减小的拐点,找到这个拐点即可。 public int minNumberInRotateArray2(int [] array) { if(array.length == 0) return 0; if(array.length == 1) return array[0]; for(int i = 0;i < array.length - 1;i ++) { if(array[i] > array[i + 1]) { return array[i + 1]; } } return array[0]; //没找到:说明数组里所有元素都一样 } public static void main(String[] args) { int[] input = {3,4,5,2,3}; System.out.println(new MinNumberInRotateArray().minNumberInRotateArray2(input)); } }
相关文章推荐
- java面试题:输出旋转数组的最小元素(剑指offer)
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。
- 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数
- java实现把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如{3,4,5,1,2}为{1,2,3,4,5}
- 剑指Offer(11)旋转数组的最小元素
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数
- 【c语言】输入一个递增排序的数组的一个旋转,输出旋转数组中的最小元素
- [经典面试题]输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组
- 剑指offer 01-06解答思路以及代码(顺序数组找特定数字,替换空格字符,链表反转输出,重建二叉树,两个栈实现队列效果,旋转数组最小元素)
- 输出一个为递增排序数组的旋转数组中的最小元素――8
- 面试题8:输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数
- C语言输出旋转后数组中的最小数元素的算法原理与实例
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转。输出旋转数组的最小值。
- 剑指Offer面试题8:寻找旋转数组的最小元素
- 【C语言】求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素
- 【c语言】输入一个递增排序的数组的一个旋转,输出旋转数组中的最小元素