Codility 的 MinAvgTwoSlice 挑战 - C++

问题描述 投票:0回答:1

我正在尝试解决 Codility 第 5 课中的 MinAvgTwoSlice 问题,但我似乎找不到我的代码有什么问题。一般思想是,给定一个整数数组,必须找到该数组中具有最小平均值的切片。当尝试解决问题时,他们使用数组 [4, 2, 2, 5, 1, 5, 8] 作为试验,解决它的函数应该返回 1;然而,即使用笔和纸计算,我也得到的不是 1,而是 2。

这是我的工作代码,但是,通过提供的示例,我得到了 2,任何建议或疏忽都会受到赞赏:

#include <vector>
#include <climits>

using namespace std;

int solution(vector<int> &A){
    int N=A.size();
    int minAverage = INT_MAX;
    int sum;
    int div;

    for(int p=0; p<(N-1); p++){
        sum = A[p];
        div = 2;
        for(int q=(p+1); q<N; q++){
            sum += A[q];
            minAverage = min(minAverage, sum/div);
            div++;
        }
    }
    return minAverage;
}
c++ c++14
1个回答
0
投票

我被问到切片的位置而不是得到最小平均值。感谢评论,我意识到了这一点。这可以关闭。

© www.soinside.com 2019 - 2024. All rights reserved.