LintCode求最大平均值子数组
2017-07-26 19:00
274 查看
这个题我深有体会,在事先说明的这段代码在运行时只有34%通过测试,而错误原因我把它归结为系统出错
(???????)
我的输出答案是错误的??????????
我采用的是暴力遍历法,就每一中可能都去进行比较。当然我看了别人还有二分法,然而我并没有看懂。我的代码如下:
package com.test;
public class ZuiDaPingJunZiShuZu {
public static void main(String[] args){
//int arr[] = {1,12,-5,-6,50,3};
int arr[] = {-1,-2,-3,-100,-1,-50};
double a = maxAverage(arr,4);
System.out.println(a);
}
/**
* 求一个最大子数组,其子数组的长度为k
*/
public static double maxAverage(int[] nums, int k) {
int len = nums.length; //数组长度
int count = 1; //数组指针
double maxSum = 0; //最大子数组的和
/*
* 先将前k数之和赋给maxSun
*/
for (int i = 0; i < k; i++) {
maxSum += nums[i];
}
/*
* 主要算法
*/
while(count <= len - k){
//temp每次大循环都要重置,所以在这里新建
double temp = 0;
//从第二数开始每k个数求和并赋给temo
for (int j = 0; j < k ; j++) {
temp += nums[count+j];
}
//比较temp和maxSun的值,记住每次计数器都要向后移一位
if(temp > maxSum){
maxSum = temp;
count++;
}else{
count++;
}
}
return maxSum/k;
}
}
(???????)
我的输出答案是错误的??????????
我采用的是暴力遍历法,就每一中可能都去进行比较。当然我看了别人还有二分法,然而我并没有看懂。我的代码如下:
package com.test;
public class ZuiDaPingJunZiShuZu {
public static void main(String[] args){
//int arr[] = {1,12,-5,-6,50,3};
int arr[] = {-1,-2,-3,-100,-1,-50};
double a = maxAverage(arr,4);
System.out.println(a);
}
/**
* 求一个最大子数组,其子数组的长度为k
*/
public static double maxAverage(int[] nums, int k) {
int len = nums.length; //数组长度
int count = 1; //数组指针
double maxSum = 0; //最大子数组的和
/*
* 先将前k数之和赋给maxSun
*/
for (int i = 0; i < k; i++) {
maxSum += nums[i];
}
/*
* 主要算法
*/
while(count <= len - k){
//temp每次大循环都要重置,所以在这里新建
double temp = 0;
//从第二数开始每k个数求和并赋给temo
for (int j = 0; j < k ; j++) {
temp += nums[count+j];
}
//比较temp和maxSun的值,记住每次计数器都要向后移一位
if(temp > maxSum){
maxSum = temp;
count++;
}else{
count++;
}
}
return maxSum/k;
}
}
相关文章推荐
- [置顶] lintcode(617)最大平均值子数组
- LintCode 最大平均值子数组
- 最大平均值子数组-LintCode
- LintCode 最大子数组(3种方法)
- Lintcode:最大子数组
- lintcode(42)最大子数组 II
- python_lintcode_简单题 _44最小子数组_41最大子数组
- 最大子数组 II-LintCode
- 算法爱好者——最大平均值子数组 ? 待解决
- LintCode-41. 最大子数组
- [Lintcode]Maximum Subarray III最大子数组 III
- Lintcode 最大子数组 II
- 最大子数组—Lintcode
- LintCode:最大子数组 II
- Google/LintCode:M-最大平均值子数组
- LintCode 最大子数组(dp)
- [Lintcode]Maximum Subarray II 最大子数组 II
- lintcode 41.最大子数组
- lintcode 最大子数组(Maximum Subarray )(Java)
- lintcode最大子数组