题目:

动态规划:

分析:上面的图是老的数组,下面的是新的数组,通过老数组的当前值加上前一个值对应位置的新数组的值,就是新数组对应位置的新值,最后找到新的队列元素中的最大值即可。

代码如下:

#include <iostream>
#include <vector>using namespace std;
class Solution
{
public:int maxSubArray(vector<int>& nums){int length = nums.size();vector<int>resultV(length,0);for(int i = 0; i<length;i++){if(i == 0){resultV[i] = nums[i] + 0;}else{resultV[i] = nums[i]+resultV[i-1];if(resultV[i] < nums[i]){resultV[i] = nums[i];  // 这部很关键,如果前面的数列之和相加没有原数列对应位置i值大,就需要把原来数列i为hi值,赋给新的数列对应的的i位置上。}}}int max = resultV[0];for (auto v : resultV){if (max < v)max = v;}return max;}
};int main()
{Solution way;vector<int> nums = {0,-2,5,0,-3,2};int result = way.maxSubArray(nums);cout <<result<<endl;return 0;
}

下面是leetcode解法,原理类似

class Solution {
public:int maxSubArray(vector<int>& nums) {int pre = 0, maxAns = nums[0];for (const auto &x: nums) {pre = max(pre + x, x);maxAns = max(maxAns, pre);}return maxAns;}
};

leetcode刷题:数组的最大子序和相关推荐

  1. C#LeetCode刷题-数组

    数组篇 # 题名 刷题 通过率 难度 1 两数之和 C#LeetCode刷题之#1-两数之和(Two Sum) 43.1% 简单 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组 ...

  2. python【力扣LeetCode算法题库】53- 最大子序和

    最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: ...

  3. leetcode刷题:二叉树的中序遍历

    题目: 分析: 代码如下: class Solution { public:vector<int> inorderTraversal(TreeNode* root) {stack<T ...

  4. Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言)

    Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言) ** 题目: ** 给你一个目标数组 target 和一个整数 n.每次迭代,需要从 list = {1,2 ...

  5. LeetCode 刷题之旅(2020.05.22)——105. 从前序与中序遍历序列构造二叉树(中)

    LeetCode 刷题之旅(2020.05.22)--105. 从前序与中序遍历序列构造二叉树(中) 题目: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如, ...

  6. LeetCode刷题(十)----数组-----medium部分(Java、C++)

    LeetCode刷题(十)-----数组-------medium部分(Java.C++) 238. 除自身以外数组的乘积 给定长度为n的整数数组nums,其中n>1,返回输出数组output, ...

  7. 每天Leetcode 刷题 初级算法篇-打乱数组

    目录 Leetcode刷题 Leetcode刷题 /*** @program: mydemo* @description: 设计问题-打乱数组* @author: Mr.zeng* @create: ...

  8. LeetCode刷题笔记2——数组2

    LeetCode刷题笔记2--数组2 重塑数组 题目 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原 ...

  9. ​LeetCode刷题实战81:搜索旋转排序数组 II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  10. C#LeetCode刷题-动态规划

    动态规划篇 # 题名 刷题 通过率 难度 5 最长回文子串 22.4% 中等 10 正则表达式匹配 18.8% 困难 32 最长有效括号 23.3% 困难 44 通配符匹配 17.7% 困难 53 最 ...

最新文章

  1. Firebug Console 与命令行全集
  2. 5分钟了解vue-router的基本使用
  3. MyBatis设计模式总结
  4. java中push和pop指令的作用_汇编语言PUSH和POP指令(压栈和出栈)
  5. css @media 响应式布局
  6. SAP License:请教一个SD和FM基金预算集成的问题
  7. MySQL 网络延时参数设置建议
  8. 多输出模型实例的数据加载
  9. Commons IO -- IOUtils
  10. 交通灯控制——汇编小设计
  11. C++ ODB学习(阿里云服务器测试)
  12. 简述JVM垃圾回收机制
  13. 公众号网课答案查询系统
  14. excel设置行高和列宽_Excel使用小技巧-Excel里设置列宽和行高
  15. 乐乐音乐-KSC歌词图片生成器
  16. 熟知四种常见的BIOS信息说明【7gyy】
  17. 家用无线路由器服务器,家用无线路由器DHCP服务器配置方法
  18. Apollo星火计划学习笔记|控制模块
  19. YOLO图像快速标注工具
  20. 基于51单片机的贪吃蛇小程序(8*8LED点阵实现)by_jy

热门文章

  1. Android Studio 使用socks代理
  2. bootstrap入门
  3. IE6和其他浏览器的css样式不同
  4. [转帖]jQuery框架学习第八天:ASP.NET jQuery实施方案
  5. 不到600美元,即可获取一套MF Porting kit 3.0
  6. MySQL用函数统计记录总数_在mysql中使用COUNT 或者SUM函数计算记录总数
  7. C/C++库函数math用法案例篇二
  8. J2EE--Mybatis基础知识题
  9. 微课系列(6):Python关键字else的三种用法
  10. django和mysql如何建模_Django中的多个数据库和多个模型