zoukankan      html  css  js  c++  java
  • 华为机试复习--动态规划

    NC19 子数组的最大累加和问题

    题目描述
    给定一个数组arr,返回子数组的最大累加和
    例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.
    题目保证没有全为负数的数据
    [要求]
    时间复杂度为O(n)O(n),空间复杂度为O(1)O(1)

    示例1
    输入
    [1, -2, 3, 5, -2, 6, -1]
    返回值
    12
    备注:

    class Solution {
    public:
        /**
         * max sum of the subarray
         * @param arr int整型vector the array
         * @return int整型
         */
        int maxsumofSubarray(vector<int>& arr) {
            // write code here
            int m = arr[0]; // 保存最大累加和
            for(int i = 1 ; i<arr.size() ; i++)
            {
                arr[i] = max(arr[i] , arr[i-1]+arr[i]);
                m = max(m, arr[i]);
            }
            return m;
        }
    };
    
  • 相关阅读:
    JS运算符
    JS基础
    0507-弹性盒子
    0506css3(2D、3D)动画
    CSS3边框
    0503-格式与布局
    0502-边框边界
    0502-其他html标签
    0428-专题块状元素
    mysql 数据库学习
  • 原文地址:https://www.cnblogs.com/Jorgensen/p/14574274.html
Copyright © 2011-2022 走看看