2 条题解

  • 0
    @ 2023-10-17 20:03:55

    使用状态压缩,用两个变量来代替数组,将时间复杂度从O(n2)压缩到O(n)

    #include <iostream>
    
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
        int prev;
        cin >> prev;
        int res = prev;
    
        while (--n) {
            int a;
            cin >> a;
            prev = max(a, prev + a);
            res = max(prev, res);
        }
    
        cout << res << endl;
    }
    
    int max(int a, int b) {
        return a > b ? a : b;
    }
    

    【基础】最大部分和(连续部分和)

    信息

    ID
    2502
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    3
    已通过
    2
    上传者