输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素
2013-11-09 12:01
323 查看
/** * * 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素 * */ public class MinNum { public void findMin(int[] a){ //指向第一个元素的指针 int low = 0; //指向最后一个元素的指针 int high = a.length - 1; if(a[low] < a[high]){ System.out.println(a[low]); return; } //当无法确认中间的数字是位于前面的子数组还是位于后面的子数组时,挨着找 int mid; mid = (low+high)/2; if(a[low] == a[high] && a[low] == a[mid]){ find(a); return; } //最终使high指向后边递增数组的第一个数,low指向前边递增数组的最后一个数 while(low + 1 != high){ mid = (low+high)/2; if(a[mid] < a[low]){ high = mid; }else{ low = mid; } } System.out.println(a[high]); } public void find(int[] a){ int min = a[0]; for(int i = 1;i <= a.length - 1;i++){ if(a[i] < min){ min = a[i]; } } System.out.println(min); } public static void main(String[] args) { MinNum mn = new MinNum(); int [] a = {1,1,1,0,1}; mn.findMin(a); } }
相关文章推荐
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组
- 【c语言】输入一个递增排序的数组的一个旋转,输出旋转数组中的最小元素
- 【c语言】输入一个递增排序的数组的一个旋转,输出旋转数组中的最小元素
- 面试题8:输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。
- 【C语言】求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数
- java实现把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如{3,4,5,1,2}为{1,2,3,4,5}
- 输出一个为递增排序数组的旋转数组中的最小元素――8
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数
- [经典面试题]输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。
- 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
- 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
- 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转。输出旋转数组的最小值。
- 求旋转数组的最小元素(把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3
- 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
- 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。