一个数组有 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 个元素,求连续子数组的最大和(动态规划问题) 的相关文章

  • 编程艺术 - 第二章 、俩个字符串是否包含问题以及扩展

    1 题目 假设这有一个各种字母组成的字符串 假设这还有另外一个字符串 而且这个字符串里的字 母数相对少一些 从算法是讲 什么方法能最快的查出所有小字符串里的字母在大字符串里 都有 比如 如果是下面两个字符串 String 1 ABCDEFG
  • 01背包--数组能否分成两个和相同的数组

    1 2 6 3 可以分成 1 2 3 和 6 思路 此题可以用0 1背包问题来解决 分成的两个数组之和 一定为整个数组之和的一半 所以将背包容量设为初始数组之和的一半即可 最后在判断背包所装的容量是不是整个数组之和的一半 关于01背包问题的
  • 蓝桥杯——七段码(并查集+二进制情况罗列)

    问题网站 https www lanqiao cn problems 595 learning contest id 73 这道题就是相邻的段可以表示一种符号 最少必须要有一段 其实我最初的想法就是把全部的符号表示按照符号个数分别罗列出来
  • 力扣:130. 被围绕的区域(深度优先算法)

    给你一个 m x n 的矩阵 board 由若干字符 X 和 O 找到所有被 X 围绕的区域 并将这些区域里所有的 O 用 X 填充 示例 1 输入 board X X X X X O O X X X O X X O X X 输出 X X
  • LeetCode:58. 最后一个单词的长度

    给你一个字符串 s 由若干单词组成 单词前后用一些空格字符隔开 返回字符串中 最后一个 单词的长度 单词 是指仅由字母组成 不包含任何空格字符的最大子字符串 示例 1 输入 s Hello World 输出 5 解释 最后一个单词是 Wor
  • PTAL2-028秀恩爱分得快(无算法,纯编程)

    PTAL2 028秀恩爱分得快 题目链接 PTAL2 029秀恩爱分得快 注意事项 无算法 纯编程 主要就是性别的处理 亲近度的计算 记住对照片的输入是要字符串 因为0可能是异性 二者亲近度都与最大值相等 就输出这对情侣 如果不是相等的 哪
  • 算法题-员工工号问题

    题目 公司员工的工号规则为 小写字母 数字 总长度不能超过8位 x表示该工号类型可以容纳的员工人数 y表示字母的个数 请确定数字的最小个数 例如 输入 260 1 输出 1 自己做的 不知道对不对 附上代码 import math def
  • 【Leetcode041】 最大子数组和

    53 最大子数组和 给你一个整数数组 nums 请你找出一个具有最大和的连续子数组 子数组最少包含一个元素 返回其最大和 子数组 是数组中的一个连续部分 示例 1 输入 nums 2 1 3 4 1 2 1 5 4 输出 6 解释 连续子数
  • 从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。

    从键盘读入个数不确定的整数 并判断读入的正数和负数的个数 输入为0时结束程序 题目描述 从键盘读入个数不确定的整数 并判断读入的正数和负数的个数 输入为0时结束程序 解题思路 因为读入的个数不确定 所以需要一个无限循环 当输入为 时 bre
  • 华为OD机试真题-单词倒序【2023.Q1】

    题目描述 题目描述 输入单行英文句子 里面包含英文字母 空格以及 三种标点符号 请将句子内每个单词进行倒序 并输出倒序后的语句 输入描述 输入字符串S S的长度1 N 100 输出描述 输出逆序后的字符串 补充说明 标点符号左右的空格 gt
  • 1041 考试座位号

    每个 PAT 考生在参加考试时都会被分配两个座位号 一个是试机座位 一个是考试座位 正常情况下 考生在入场时先得到试机座位号码 入座进入试机状态后 系统会显示该考生的考试座位号码 考试时考生需要换到考试座位就座 但有些考生迟到了 试机已经结
  • 【机考】华为OD2022.11.01机考题目思路与代码

    题目一 描述 输入一个长度为4的倍数的字符串 字符串中仅包含WASD四个字母 将这个字符串中的连续子串用同等长度的仅包含WASD的字符串替换 如果替换后整个字符串中WASD四个字母出现的频数相同 那么我们称替换后的字符串是 完美走位 求子串
  • 谭浩强C++课后习题20——找二维数组的鞍点

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

    判断题的评判很简单 本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分 输入格式 输入在第一行给出两个不超过 100 的正整数 N 和 M 分别是学生人数和判断题数量 第二行给出 M 个不超过 5 的正整数 是每道题的满分值 第
  • LeetCode-1604. 警告一小时内使用相同员工卡大于等于三次的人【哈希表,排序,数组】

    LeetCode 1604 警告一小时内使用相同员工卡大于等于三次的人 哈希表 排序 数组 题目描述 解题思路一 时间转换成分钟数 直接解决跨天问题 用哈希表记录每个员工的名字以及对应的时间 然后遍历哈希表 对于每个员工 我们将该员工的所有
  • 编程艺术 - 第一章 左旋转字符串

    题目 定义字符串的左旋转操作 把字符串前面的若干个字符移动到字符串的尾部 若把字符串abcdef左旋转2位得到字符串cdefab 请实现字符串左旋转的函数 要求对长度为n的字符串操作的时间复杂度为O n 空间复杂度为O 1 类似题目还有剑指
  • 剑指 offer第62题-圆圈中最后剩下的数

    让小朋友们围成一个大圈 然后 随机指定一个数 m 让编号为 0 的小朋友开始报数 每次喊到 m 1 的那个小朋友要出列唱首歌 然后可以在礼品箱中任意的挑选礼物 并且不再回到圈中 从他的下一个小朋友开始 继续 0 m 1 报数 这样下去 直到
  • LeetCode-283. 移动零【数组,双指针】

    LeetCode 283 移动零 数组 双指针 题目描述 解题思路一 首先想到的是双指针 但是不行 非零元素的位置会改变 解题思路二 改进的是每次从当前0元素的位置取后面第一个非0元素替换过来 替换之和那个break非常重要 解题思路三 优
  • 华为OD机试真题-优秀学员统计 【2023.Q1】

    题目描述 公司某部门软件教导团正在组织新员工每日打卡学习活动 他们开展这项学习活动已经一个月了 所以想统计下这个月优秀的打卡员工 每个员工会对应一个id 每天的打卡记录记录当天打卡员工的id集合 一共30天 请你实现代码帮助统计出打卡次数t
  • 一个数组有 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