leetcode刷题:数组的最大子序和
题目:
动态规划:
分析:上面的图是老的数组,下面的是新的数组,通过老数组的当前值加上前一个值对应位置的新数组的值,就是新数组对应位置的新值,最后找到新的队列元素中的最大值即可。
代码如下:
#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刷题:数组的最大子序和相关推荐
- C#LeetCode刷题-数组
数组篇 # 题名 刷题 通过率 难度 1 两数之和 C#LeetCode刷题之#1-两数之和(Two Sum) 43.1% 简单 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组 ...
- python【力扣LeetCode算法题库】53- 最大子序和
最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: ...
- leetcode刷题:二叉树的中序遍历
题目: 分析: 代码如下: class Solution { public:vector<int> inorderTraversal(TreeNode* root) {stack<T ...
- Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言)
Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言) ** 题目: ** 给你一个目标数组 target 和一个整数 n.每次迭代,需要从 list = {1,2 ...
- LeetCode 刷题之旅(2020.05.22)——105. 从前序与中序遍历序列构造二叉树(中)
LeetCode 刷题之旅(2020.05.22)--105. 从前序与中序遍历序列构造二叉树(中) 题目: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如, ...
- LeetCode刷题(十)----数组-----medium部分(Java、C++)
LeetCode刷题(十)-----数组-------medium部分(Java.C++) 238. 除自身以外数组的乘积 给定长度为n的整数数组nums,其中n>1,返回输出数组output, ...
- 每天Leetcode 刷题 初级算法篇-打乱数组
目录 Leetcode刷题 Leetcode刷题 /*** @program: mydemo* @description: 设计问题-打乱数组* @author: Mr.zeng* @create: ...
- LeetCode刷题笔记2——数组2
LeetCode刷题笔记2--数组2 重塑数组 题目 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原 ...
- LeetCode刷题实战81:搜索旋转排序数组 II
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- C#LeetCode刷题-动态规划
动态规划篇 # 题名 刷题 通过率 难度 5 最长回文子串 22.4% 中等 10 正则表达式匹配 18.8% 困难 32 最长有效括号 23.3% 困难 44 通配符匹配 17.7% 困难 53 最 ...
最新文章
- Firebug Console 与命令行全集
- 5分钟了解vue-router的基本使用
- MyBatis设计模式总结
- java中push和pop指令的作用_汇编语言PUSH和POP指令(压栈和出栈)
- css @media 响应式布局
- SAP License:请教一个SD和FM基金预算集成的问题
- MySQL 网络延时参数设置建议
- 多输出模型实例的数据加载
- Commons IO -- IOUtils
- 交通灯控制——汇编小设计
- C++ ODB学习(阿里云服务器测试)
- 简述JVM垃圾回收机制
- 公众号网课答案查询系统
- excel设置行高和列宽_Excel使用小技巧-Excel里设置列宽和行高
- 乐乐音乐-KSC歌词图片生成器
- 熟知四种常见的BIOS信息说明【7gyy】
- 家用无线路由器服务器,家用无线路由器DHCP服务器配置方法
- Apollo星火计划学习笔记|控制模块
- YOLO图像快速标注工具
- 基于51单片机的贪吃蛇小程序(8*8LED点阵实现)by_jy
热门文章
- Android Studio 使用socks代理
- bootstrap入门
- IE6和其他浏览器的css样式不同
- [转帖]jQuery框架学习第八天:ASP.NET jQuery实施方案
- 不到600美元,即可获取一套MF Porting kit 3.0
- MySQL用函数统计记录总数_在mysql中使用COUNT 或者SUM函数计算记录总数
- C/C++库函数math用法案例篇二
- J2EE--Mybatis基础知识题
- 微课系列(6):Python关键字else的三种用法
- django和mysql如何建模_Django中的多个数据库和多个模型