标签:style c class blog code java
出题:将一个数组最开始的k个(K小于数组大小N)元素照搬到数组末尾,我们称之为数组的旋转;现在有一个已经排序的数组的一个旋转,要求输出旋转数组中的最小元素,且时间复杂度小于O(N);
分析:
解题:
1 int findMinimumRatatingArray(int *array, int length) { 2 int left=0; 3 int right=length-1; 4 5 int middle; 6 while(true) { 7 middle=(left+right)/2; 8 if(right-left == 1) { 9 middle=right; 10 break; 11 } 12 13 if(array[middle]>=array[left]) 14 right=middle; 15 if(array[middle]<=array[right]) 16 left=middle; 17 } 18 return array[middle]; 19 }
出题:N个骰子扔在地上,所有骰子的朝上一面的值和为S,要求确定S所有可能出现的值的概率;
分析:
解题:
1 void diceProbability(int *array, int n, int index, int *sumArray) { 2 if(index==n) { 3 int sum=0; 4 for(int i=0;i<n;i++) 5 sum+=array[i]; 6 sumArray[sum-n]+=1; 7 } else { 8 for(int i=1;i<-6;i++) { 9 array[index]=i; 10 diceProbability(array, n, index+1, sumArray); 11 } 12 } 13 }
笔试算法题(22):二分法求旋转数组最小值 & 骰子值概率,布布扣,bubuko.com
标签:style c class blog code java
原文地址:http://www.cnblogs.com/leo-chen-2014/p/3744986.html