作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问:给定n个整数,找到平均值最大且长度为k的连续子数组,并输出最大平均值。
输入:[1,12,-5,-6,50,3],k = 4
输出:12.75
例如:maxAvr (12-5-6+50)/4 = 51/4 = 12.75
class Solution {
public double findMaxAverage(int[] nums, int k) {
double[] f = new double[nums.length];//save the max value f[i] with range k from nums[]
int length = nums.length;
int sum = 0;
for (int i = 0; i < k; i++) {
sum += nums[i];
}
if (length == k) {
return ((double) sum / k);
}
f[k - 1] = (double)sum; // start at f[k-1]
for (int i = k - 1; i < length - 1; i++) {
f[i + 1] = f[i] - nums[i - k + 1] + nums[i + 1]; // with dp to find the maxValue in the range k
}
Arrays.sort(f);
return (double) f[length - 1] / (double) k;
}
}
<小时/>
调试
当我调试时,我发现idea.sh无法解决大数组
最佳答案
谢谢我已经解决了,Arrays.sort()花费了很多时间,所以我使用了另一种方法!
class Solution {
public double findMaxAverage(int[] nums, int k) {
double[] f = new double[nums.length];
int length = nums.length;
int sum = 0;
double pre = 0;
for (int i = 0; i < k; i++) {
sum += nums[i];
}
if (length == k) {
return ((double) sum / k);
}
f[k - 1] = (double)sum;
pre = f[k-1]; // save the max value
for (int i = k - 1; i < length -1; i++) {
f[i + 1] = f[i] - nums[i - k + 1] + nums[i + 1];
if(f[i+1]>pre){
pre = f[i+1]; // exchange the max value
}
}
// Arrays.sort(f); // waste much time!
return (double) pre / (double) k;
}
}
关于java - findMaxAverage 大数组失败测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58211794/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!