一个数组有 N 个元素,求连续子数组的最大和(动态规划问题)

2023-11-20

该题题目如上,例如【-1,2,1】连续的最大子数组为【2,1】,和为3;

题目要求我们输入第一个数为数组元素的个数,然后后面为我们需要输入的元素。

遇到这一个题,我们首先可以这样考虑,设置一个sum和result,sum是用来每次加新的元素,result是最后得出最大的子数组和。

我们可以每次给sum中添加新的元素,从第一个开始向后,如果遇到和比result大的时候,就把sum的值赋给result,小于的话则继续向后寻找,当然我们也考虑到了如果数组中的数字为负数的时候,每次加新的数字之后,会判断sum是否为正,如果不为正数,就将sum置为0,那么在下一次加的时候,前面的负数不会考虑,因为越加会越小,但是我们还是会比较result跟sum的大小,因为即便为负数,也会存在大小问题,所以这样的话我们可以比较后面的子数组与前面的大小比较,最后找到最大值。

#include <iostream>
#include<vector>
using namespace std; 
int main() 
{ 
int size; 
cin >> size;
vector<int> nums(size);
for(size_t i = 0; i < size; ++i)
	cin >> nums[i]; 
int result = nums[0]; 
int  sum = 0;
for (int i = 0; i < nums.size(); i++) { // 计算到num[i]的子数组的最大和 
	sum +=nums[i]; 
	if(sum > result) 
		result = sum;
    if (sum < 0) 
	sum = 0;
     
}
cout << result << endl;
return 0; 
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个数组有 N 个元素,求连续子数组的最大和(动态规划问题) 的相关文章

  • Stable Matching-稳定匹配问题【G-S算法,c++】

    Stable Matching 稳定匹配问题 G S算法 c 题目描述 Gale Shapley算法 解题思路一 G S算法 Gale Shapley算法 题目描述 Gale Shapley算法 Teenagers from the loc
  • 分割字符串(每个子串的ASCII码值的和均为水仙花数)

    给定非空字符串在s 将该字符串分割成一些子串 使每个子串的ASCII码值的和均为水仙花数 1 若分割不成功则返回 0 2 若分割成功且分割结果不唯一则返回 1 3 若分割成功且分割结果唯一 则返回分割后的子串数目 备注 水仙花数 是指一个三
  • Leet1. 两数之和

    给定一个整数数组 nums 和一个整数目标值 target 请你在该数组中找出 和为目标值 target 的那 两个 整数 并返回它们的数组下标 你可以假设每种输入只会对应一个答案 但是 数组中同一个元素在答案里不能重复出现 你可以按任意顺
  • 求当前数组中,最大值减最小值等于sum的数组个数

    分析 应用双端队列 构造一个可以动态的求出当前数组最大值的容器 qmax 同上在构造一个qmin 从left right等于开始 如果当前区间的qmax qmin符合条件 right向右扩充 当不符合条件时 计算上一步符合条件的所有子数组个
  • LeetCode-1832. 判断句子是否为全字母句【哈希表,位运算】

    LeetCode 1832 判断句子是否为全字母句 哈希表 位运算 题目描述 解题思路一 用数组记录 一次遍历 解题思路二 位运算 最终判断mask是否为26个1即 1 lt lt 26 1 解题思路三 0 题目描述 全字母句 指包含英语字
  • [编程入门]猴子吃桃的问题(JAVA解法)

    题目描述 猴子吃桃问题 猴子第一天摘下若干个桃子 当即吃了一半 还不过瘾 又多吃了一个 第二天早上又将剩下的桃子吃掉一半 又多吃一个 以后每天早上都吃了前一天剩下的一半零一个 到第N天早上想再吃时 见只剩下一个桃子了 求第一天共摘多少桃子
  • 谭浩强C++课后习题16——矩阵对角线元素之和

    谭浩强C 课后习题16 矩阵对角线元素之和 题目描述 求一个n n矩阵对角线元素之和 算法思路 定义一个动态二维数组 定义方法 定义一个指向指针的指针 令其指向每一行的首地址 循环n次 定义n个一维数组 循环n次 对角线之和即为每一行num
  • 2022.04.13 力扣55,45,122

    学习 贪心算法 follow 代码随想录 55 跳跃游戏 题目描述 给定一个非负整数数组 nums 你最初位于数组的 第一个下标 数组中的每个元素代表你在该位置可以跳跃的最大长度 判断你是否能够到达最后一个下标 解析 方法一 暴力求解 从最
  • 1041 考试座位号

    每个 PAT 考生在参加考试时都会被分配两个座位号 一个是试机座位 一个是考试座位 正常情况下 考生在入场时先得到试机座位号码 入座进入试机状态后 系统会显示该考生的考试座位号码 考试时考生需要换到考试座位就座 但有些考生迟到了 试机已经结
  • 十进制转换为二进制代码

    十进制转换为二进制代码 十进制转换为二进制 十进制如何转二进制 将该数字不断除以2直到商为零 然后将余数由下至上依次写出 即可得到该数字的二进制表示 以将数字21转化为二进制为例 当商为零时 将余数由下至上依次写出 即为21的二进制表示 i
  • 华为OD机试真题-机房布局/栈解法【2023.Q1】

    小明正在规划一个大型数据中心机房 需要满足的条件是 确保在每个机柜边上至少要有一个电箱 已知 机房排成1排 我们用M表示机柜 I表示间隔 请你返回这整排机房 至少需要多少个电箱 如果无解请返回 1 输入描述 第一行输入一个字符串 由 M 和
  • 谭浩强C++课后习题20——找二维数组的鞍点

    谭浩强C 课后习题20 找二维数组的鞍点 题目描述 找出一个二维数组中的鞍点 即该位置上的元素在该行上最大 在该列上最小 也有可能没有鞍点 一个二维数组最多只有一个鞍点 也有可能没有 算法思路 先找出一行中值最大的元素 然后检查它是否是该列
  • 1061 判断题

    判断题的评判很简单 本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分 输入格式 输入在第一行给出两个不超过 100 的正整数 N 和 M 分别是学生人数和判断题数量 第二行给出 M 个不超过 5 的正整数 是每道题的满分值 第
  • LeetCode-2335. 装满杯子需要的最短总时长【贪心,数学】

    LeetCode 2335 装满杯子需要的最短总时长 贪心 数学 题目描述 解题思路一 其实像一道数学题目 假设三个杯子x lt y lt z先分两种情况 第一种 x y lt z 答案直接是最大的z 第二种 x y gt z 先将x与y互
  • LeetCode-1775. 通过最少操作次数使数组的和相等【贪心,数组,计数】

    LeetCode 1775 通过最少操作次数使数组的和相等 贪心 数组 计数 题目描述 解题思路一 让sum1
  • Permutation 和 Combination

    文章目录 Permutation 代码 代码核心思路 Combination 代码 代码核心思路 总结 Permutation 和 Combination是算法中非常常见的两种数据的排列方式 也就是数学中的排列和组合 Permutation
  • LeetCode-283. 移动零【数组,双指针】

    LeetCode 283 移动零 数组 双指针 题目描述 解题思路一 首先想到的是双指针 但是不行 非零元素的位置会改变 解题思路二 改进的是每次从当前0元素的位置取后面第一个非0元素替换过来 替换之和那个break非常重要 解题思路三 优
  • 1031 查验号码

    一个号码由17位地区 日期编号和顺序编号加1位校验码组成 校验码的计算规则如下 首先对前17位数字加权求和 权重分配为 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 然后将计算的和对11取模得到值Z 最后按照以下关
  • 1081 检查密码

    本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能 该网站要求用户设置的密码必须由不少于6个字符组成 并且只能有英文字母 数字和小数点 还必须既有字母也有数字 输入格式 输入第一行给出一个正整数 N 100 随后 N 行 每行给
  • 一个数组有 N 个元素,求连续子数组的最大和(动态规划问题)

    该题题目如上 例如 1 2 1 连续的最大子数组为 2 1 和为3 题目要求我们输入第一个数为数组元素的个数 然后后面为我们需要输入的元素 遇到这一个题 我们首先可以这样考虑 设置一个sum和result sum是用来每次加新的元素 res

随机推荐

  • 宿舍报修平台的小程序实现

    5 26 修改内容 加入了项目结构化需求分析 6 2 修改内容 加入了产品设计原型图以及产品项目进度 6 9 修改内容 加入了用例图 静态UML图 动态UML图 目录 项目背景 需求调查 数据采样 项目目标 项目前景 项目评估 项目范围 项
  • Solving environment: failed with initial frozen solve. Retrying with flexible solve.

    使用conda安装pytorch老是失败 于是使用以下命令安装pytorch conda install pytorch torchvision cudatoolkit 10 1 下载成功
  • 几种表面缺陷检测数据集

    2020 05 23更新 在github上创建了一个缺陷数据的项目 以后也会更新 谢谢加星 2021 09 13 我建了一个表面缺陷检测的qq交流群657617577 欢迎大家入圈交流 GitHub Eatzhy Surface defec
  • 长春理工大学第六届CTF网络攻防大赛题解(文末有题目下载链接)

    此题解仅为部分题解 包括 RE Reverse Checkin SimplePE EzGame Web f12 ezrunner Crypto MD5 password 看我回旋踢 摩丝 Misc 爆爆爆爆 凯撒大帝的三个秘密 你才是职业选
  • R语言中tidyverse基础知识汇总

    tidyverse group by 分组统计 gather 和spread 简单地说 gather 是列转行 而spread 是行转列 请看下面的示例 gt df id class grade 1 1 a 81 2 2 b 82 3 3
  • Unity在UI界面上显示3D模型/物体,控制模型旋转

    https blog csdn net ChinarCSDN article details 81058773
  • TDengine数据库-TAOS涛思数据-批量下载上亿大数据成csv 解决bug: Query interrupted (Query terminated) 4798749 row(s) in set

    目录 前言 taos shell命令批量下载数据库遇到中断问题 分析问题 解决方案 查看tao cfg文件 使用分页下载 在合并csv 1 构建 sql文件批量进行下载 2 合并分csv文件成总csv文件 总结 其它资料下载 前言 TDen
  • ET篇:斗地主的流程(资源工作流)

    有了master的学习经验 斗地主的学习将不会太多精细化 更多细节大家可以自行查看 本系列文章旨在帮助大家理解整个开发流程 资源划分策略 先来到Asset下的Bundles文件夹 这里是游戏内用到的所有的资源 都被打成ab包 正式发布时将会
  • 「 每日一练,快乐水题 」14. 最长公共前缀

    文章目录 力扣原题 题目简述 解题思路 C 代码 结果展示 力扣原题 14 最长公共前缀 题目简述 编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 返回空字符串 示例 1 输入 strs flower flow fligh
  • 一键设置L2TP脚本-Ubuntu14.04LTS

    亲测在Vultr和UltraVPS的Ubuntu 14 04 LTS成功搭建L2TP的VPN 本方法使用Linux自带的账户认证作为L2TP的认证 用户名默认为vpn user 密码在脚本执行过程中 由执行者手动设定密码 PSK为psk 开
  • linux中安装nginx

    2 安装nginx 2 1 安装nginx前 需要安装的依赖 可能是由于nginx版本旧原因 可能最新或较新版本不需安装这些依赖 如下四个依赖需要安装到linux中 2 1 1 安装 pcre 依赖 使用wget命令 步骤一 执行下面这个命
  • Debug断点无法执行

    1 可能是没有启动debug模式 导致无法进入 2 可能是idea中有缓存 导致直接出结果 这种选择重新启动项目即可
  • 浅谈core.js

    浅谈core js core js 前言 core js是什么 官方描述 总结 core js 前言 core js的作者 Denis Pushkarev 很有名 平时爱好就是飙摩托车 在一次事故中 酒驾 他以60km h的速度驾驶 结果撞
  • 2.5 Git 基础 - 远程仓库的使用

    2 5 Git 基础 远程仓库的使用 版本说明 版本 作者 日期 备注 0 1 loon 2019 3 21 初稿 目录 文章目录 2 5 Git 基础 远程仓库的使用 版本说明 目录 远程仓库的使用 1 查看远程仓库 2 添加远程仓库 3
  • 【大屏可视化模板】vue-dataV-echarts-elementul大屏数据可视化方案,屏幕适配方案等比例缩放

    效果图 从上到下 依次是F11效果 和正常网页效果 以及小屏效果 都是同比例缩放的 布局不会混乱 聊一下 为了让大家直观的看到所有的代码 所以结构方法等就不分各个组件引入了 会很麻烦要找哪是哪 我直接把所有的图都写在了一个vue组件内 并配
  • 电脑有网但打不开网页怎么办?

    明明刚交了宽带年费 本地连接显示一切正常 但是打开网页总有问题 换浏览器重启无效 我该怎么办 放心吧 下面 微点阅读小编整理了一些网络链接正常却上不了网的解决方法 对于经常上网的朋友来说 除了手机购物 在Pc端玩网页游戏是很多小伙伴的首选
  • idea 启动时怎么选择工作空间

    idea 启动时怎么选择工作空间 按快捷键 ctrl alt s打开设置 点击System Settings选项后 把右边版面中Reopen last projecton startup前面的勾去掉 保存 下次再打开的时候就可以选择你要的空
  • 关于Redis的事件回调解析以及docker中的配置

    基本概念 Redis的过期回调可以实现我们的redsi的key在过期的时候回调一些接口从而来实现项目中需要的一些功能 比如我们想在订单超时的时候进行关闭 可以用这个来进行一个简单的实现 当然实际的项目中能否这样使用我们暂且不做讨论 这里只是
  • word添加字体库

    1001 Fonts Free Fonts Baby 51044 free fonts in 28637 families Free licenses for commercial use Direct font downloads Mac
  • 一个数组有 N 个元素,求连续子数组的最大和(动态规划问题)

    该题题目如上 例如 1 2 1 连续的最大子数组为 2 1 和为3 题目要求我们输入第一个数为数组元素的个数 然后后面为我们需要输入的元素 遇到这一个题 我们首先可以这样考虑 设置一个sum和result sum是用来每次加新的元素 res