小E君自助餐厅流量分析
小E君自助餐厅流量分析
问题描述
小E君需要根据每天的客流量数据进行分析,以制定自助餐厅的备货策略。她需要计算前i天的客流量平均值,并将其四舍五入为整数。给定餐厅营业的总天数N以及每天的客流量数据Ri,你需要输出一个长度为N的序列,其中第i个值表示前i天的平均客流量。要求所有输出结果四舍五入到最接近的整数。
测试样例
样例1:
输入:N = 5 ,R = [1, 2, 3, 4, 10]
输出:[1, 2, 2, 3, 4]
样例2:
输入:N = 3 ,R = [5, 10, 15]
输出:[5, 8, 10]
题解
模拟。 c++写法
#include <iostream>
#include <vector>
#include <string>
#include<cmath>
using namespace std;
vector<int> solution(int N, vector<int> R) {
// PLEASE DO NOT MODIFY THE FUNCTION SIGNATURE
// write code here
vector<int> res(N, 0);
int tmp = 0;
for (int i = 0; i < N; i++) {
tmp += R[i];
res[i] = round(tmp * 1.0 / (i+1));
}
return res;
}
Java写法
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static int[] solution(int N, int[] R) {
// PLEASE DO NOT MODIFY THE FUNCTION SIGNATURE
// write code here
int sum = 0;
List<Integer> res = new ArrayList<Integer>(N);
for (int i = 0; i < N; i++) {
sum += R[i];
int tmp = Long.valueOf((Math.round(sum * 1.0 / (i+1)))).intValue();
res.add(tmp);
}
return res.stream()
.mapToInt(Integer::intValue) // 将 Integer 转为 int
.toArray();
}