zoukankan      html  css  js  c++  java
  • 剑指 Offer——连续子数组的最大和

    1. 题目

    2. 解答

    初始化 sum=0,然后遍历数组进行累加。如果 sum 变为负数,也就说再继续累加的话贡献为负,我们需要更新 sum=0,重新开始累加。

    初始化 max_sum 为数组的第一个元素,之所以不初始化为零,就是防止出现数组中全为负数的情况,比如 [-2, -1, -3, -4, -5]。在遍历数组的过程中,如果 sum > max_sum,就更新 max_sum=sum,最后 max_sum 即为所求。

    class Solution {
    public:
        int FindGreatestSumOfSubArray(vector<int> array) {
    
            int n = array.size();
            int sum = 0;
            int max_sum = array[0];
    
            for (int i = 0; i < n; i++)
            {
                sum += array[i];
                if (sum > max_sum)    max_sum = sum;
                if (sum < 0)    sum = 0;
            }
    
            return max_sum;
        }
    };
    

    获取更多精彩,请关注「seniusen」!

  • 相关阅读:
    IntelliJ Idea 快捷键列表
    mysql索引类型和方式
    基本git指令
    idea中deBug方法
    BeanUtils.copyProperties(A,B)使用注意事项
    MySQL字段类型
    JAVA常识1
    Redis在windows下的安装下载
    Netty
    IDEA工具
  • 原文地址:https://www.cnblogs.com/seniusen/p/10778954.html
Copyright © 2011-2022 走看看