如何建设购物网站,高级私人定制制衣店,免费拓客软件,网站建设与维护心得1. 题目
我们对 0 到 255 之间的整数进行采样#xff0c;并将结果存储在数组 count 中#xff1a;count[k] 就是整数 k 的采样个数。
我们以 浮点数 数组的形式#xff0c;分别返回样本的最小值、最大值、平均值、中位数和众数。其中#xff0c;众数是保证唯一的。
我们…1. 题目
我们对 0 到 255 之间的整数进行采样并将结果存储在数组 count 中count[k] 就是整数 k 的采样个数。
我们以 浮点数 数组的形式分别返回样本的最小值、最大值、平均值、中位数和众数。其中众数是保证唯一的。
我们先来回顾一下中位数的知识 如果样本中的元素有序并且元素数量为奇数时中位数为最中间的那个元素 如果样本中的元素有序并且元素数量为偶数时中位数为中间的两个元素的平均值。
示例 1
输入count [0,1,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
输出[1.00000,3.00000,2.37500,2.50000,3.00000]示例 2
输入count [0,4,3,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
输出[1.00000,4.00000,2.18182,2.00000,1.00000]提示
count.length 256
1 sum(count) 10^9
计数表示的众数是唯一的
答案与真实值误差在 10^-5 以内就会被视为正确答案来源力扣LeetCode 链接https://leetcode-cn.com/problems/statistics-from-a-large-sample 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
class Solution {
public:vectordouble sampleStats(vectorint count) {int i, MIN -1, MAX, avg, median 0, mode;int n 0, ni 0, N;long sum 0;for(i 0; i count.size(); i){if(count[i]){if(MIN -1)MIN i;//第一个最小的数 iMAX i;//最大的数 in count[i];//个数累加sum count[i]*i;//求和if(count[i] ni)//单个数 最大的个数{ni count[i];mode i;//众数}}}vectordouble ans({MIN,MAX,double(sum)/n,0,mode});ni 0;bool flag false;for(i 0; i count.size(); i){ //寻找中位数if(n%2)//总的个数是奇数个{if(nicount[i] n/21)ni count[i];else{ans[3] i;break;}}else//偶数个{N ni count[i];if(N n/2)ni count[i];else if(N n/2 N n/21){ans[3] i;flag true;//中位数卡在两个数上}else{if(!flag){ans[3] i;break;}else{ans[3] double(ans[3]i)/2;break;}}}}return ans;}
};8 ms 8.6 MB