题解 | #连续的最大编号和#

连续的最大编号和

https://www.nowcoder.com/practice/87811c7ff248419dab6201aa3818e2c2

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型
     */
    int maxSubArray(vector<int>& nums) {
        // write code here
        n = nums.size();
        for (auto p: nums) a.push_back(p);
        f.resize(a.size());
        // 环形数组的子数组包括以下两种情况:o表示选择的子数组
        return  FindMaxArray();
    }

    int FindMaxArray() {
        f.clear();
        f[0] = a[0];
        int ans = f[0];
        for (int i = 1; i < a.size(); ++i) {
            f[i] = max(f[i - 1] + a[i], a[i]);
            ans = max(ans, f[i]);
        }
        return ans;
    }

    int n;
    vector<int> a;
    vector<int> f; // f[i]: 以 a[i] 为结尾的最小子段和
};

全部评论

相关推荐

07-01 17:14
中北大学 Java
兄弟们是真是假
牛客46374834...:我在boss上投java岗从来没成功过
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务