[算法]最大子串和

2023-11-13

题目描述:
首先有一串数字,共有n个,从n个数中找到连续子序列和的最大值;

解法一:暴力破解法
看到这个问题时第一时间想到的就是暴力破解法,遍历所有子序列,最终得到最大值;
e.g.
1 2 3 4 5 6 共有六个数
所有组合为
1,2,3,4,5,6
1-2,1-3,1-4,1-5,1-6
2-3,2-4,2-5,2-6
3-4,3-5,3-6
4-5,4-6
5-6
需要计算次数为:n(n+1)/2;
复杂度:n*n;

没什么难度,代码就不贴出来了;

解法二:动态规划
这里写图片描述

初始化变量temp=0;
最大值Sn=0;
首先输入n个数字;

当i==0时,如果An[i]<=0时,temp[i]=0,Sn=0;
****************An[i]>0时,temp[i]=An[i],Sn=An[i];
当i!=0时,
****************temp[i-1]<=0时:temp[i]=An[i];
****************temp[i-1]>0时:temp[i]=temp[i-1]+An[i];

Sn[i]=Max(Sn[i-1],temp[i]);

具体代码如下:

#include<iostream>
using namespace std;
int main()
{
    int n;
    int Sn=0;
    cin>>n;
    int a[n];
    int temp[n];

    for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<n;i++)
    {
        if(i==0)
        {
            if(a[i]<=0)
                temp[0]=0;
            else
            {
                temp[0]=a[0];
                Sn=a[0];
            }               
        }
        else
        {
            if(temp[i-1]<=0)
                temp[i]=a[i];
            else if(temp[i-1]>0)
                temp[i]=a[i]+temp[i-1];

            if(Sn<temp[i])
                Sn=temp[i]; 
        }
    }
    cout<<Sn;
}

Tony-Chen
2017.11.2
安得与君绝决,免教生死作相思

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

[算法]最大子串和 的相关文章

  • Opencv dft & idft

    Load an image cv Mat inputImage cv imread argv argc 1 0 Go float cv Mat fImage inputImage convertTo fImage CV 32F FFT st

随机推荐

  • HTML的无序列表、有序列表、自定义列表

    HTML的无序列表 1 无序列表是一个项目的列表 此列项目使用粗体圆点 典型的小黑圆圈 进行标记 无序列表始于 ul 无序列表 ul type disc li HTML li li CSS li li li ul ul
  • 函数的传递方式&不定长参数&参数解包

    文章目录 1 函数简介 2 函数的参数 2 1 形参和实参 2 2 函数的传递方式 2 2 1 位置传参 2 2 2 关键字传参 2 3 函数的实参类型 2 4 不定长参数 2 5 参数的解包 1 函数简介 函数也是一个对象 函数用来保存一
  • C++ 模板特例化

    文章目录 介绍 函数模板特例化 类模板特例化 介绍 模板作为C 泛型编程的基础十分重要 其使得一份代码能用于处理多种数据类型 而有些时候 我们会希望对一些特定的数据类型执行不同的代码 这时就需要使用模板特例化 template specia
  • Echarts 渐变色

    series i line itemStyle normal color Color Function default 自适应 图形的颜色 默认从全局调色盘 option color 获取颜色 颜色可以使用 RGB 表示 比如 rgb 12
  • Java技术栈,从入门到放弃,废了废了

    Java技术路线 应用框架 后端 Spring家族 Spring IoC AOP Spring MVC Spring Boot 自动配置 开箱即用 整合Web 整合数据库 事务问题 整合权限 Shiro Spring Security 整合
  • 开放集识别

    0 摘要 1 到目前为止 在计算机视觉中 几乎所有基于机器学习的识别算法的实验评估都采用了封闭集识别的形式 即在训练时已知所有测试类 对于视觉应用来说 一个更现实的场景是开放集识别 在训练时存在不完整的世界知识 在测试时未知的类可以提交给算
  • Vscode 打开文件注释中文乱码解决如下

    安装插件 ext install gbktoutf8 搜索encoding
  • 【LINUX计算机大白平凡学习linux之路】

    计算机大白平凡学习 之路 千里之行 始于足上 只有基础扎实 思路清析 写脚本才没有问题 多看一些牛人大咖写的脚本 看人家的思路与结构 会收益良多 一起努力学习吧 Linux是Torvalds先生所开发出来的 基于GPL的版权宣告之下 可以在
  • 神经网络优化(初始化权重)

    使隐藏层饱和了 跟之前我们说的输出层饱和问题相似 对于输出层 我们用改进的cost函数 比如cross entropy 但是对于隐藏层 我们无法通过cost函数来改进 更好的方法来初始化权重 因为传统的初始化权重问题是用标准正态分布 均值为
  • CentOS7.6 MySql 5.7.34安装部署

    一 卸载Mysql 查看系统是否安装默认的mysql rpm qa grep i mysql 如有 进行卸操作 rpm e nodeps 确认是否卸载完成 whereis mysql cd find name mysql cat etc p
  • 一种新型神经网络正在帮助物理学家应对数据分析的艰巨挑战

    来源 ScienceAI 本文约3000字 建议阅读5分钟 现在 在计算端 计算机科学往往处于领先地位 假设你有一本一千页的书 但每一页只有一行文字 你使用扫描仪提取书中包含的信息 这个特定的扫描仪系统地扫描每一页 一次扫描一平方英寸 要花
  • crmeb v4.3部署流程

    运行环境 CRMEB v4支持Lunix windows服务器环境 需要PHP7 1 7 3 版本支持 可运行于包括Apache和nginx在内的多种WEB服务器和模式 支持Mysql数据库 引擎用InnoDB 框架本身没有什么特别模块要求
  • Pyinstaller 打包.py生成.exe的方法和报错总结

    Pyinstaller 打包 py生成 exe的方法和报错总结 简介 有时候自己写了个python脚本觉得挺好用想要分享给小伙伴 但是每次都要帮他们的电脑装个python环境 虽然说装一下也快 但是相对来说效率还是不高 要是能将python
  • 【AI &Data Science】第 1 章分析性思维与 人工智能驱动的企业

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • DHCP设置之起始地址与结束地址

    路由器设置ip地址 subnet mask dhcpstart dhcpend时 后台应该如何判断 get data ipstart websGetVar wp T start T ipend websGetVar wp T end T i
  • do while(0)的作用

    在嵌入式开发的过程中 我们经常可以在一些优秀开源代码的头文件里发现一些宏定义使用了do while 0 语句 也许你会疑惑do while 0 中的代码不就是只执行一次吗 为什么还要多此一举使用do while 0 循环结构去包裹呢 实际上
  • 卷积、池化、激励函数的顺序

    以下内容为个人的看法 顺序 卷积 池化 激励函数 我们知道卷积肯定是在第一层 毕竟 wx b wx b 就是卷积操作 那为什么池化要在激励函数之前呢 原因解析 假设激励函数是 relu 激励函数 并假设我们卷积后的值为 3 2 1 2 对于
  • 【总结】Typescript 结合Vue3的写法

    目录 前言 一 结合写法 1 ref 2 reactive 3 defineProps 4 defineEmits 5 computed 6 事件处理函数 7 html元素引用 8 组件实例 二 拓展补充 1 keyof 操作符 2 typ
  • 把代码做成笔记——Jupyter Notebook

    此文章首发于微信公众号Python for Finance 链接 https mp weixin qq com s KDCmpgwPbvrkRIuojtLpNg 什么是Jupyter Notebook Spyder Spyder代码编辑区
  • [算法]最大子串和

    题目描述 首先有一串数字 共有n个 从n个数中找到连续子序列和的最大值 解法一 暴力破解法 看到这个问题时第一时间想到的就是暴力破解法 遍历所有子序列 最终得到最大值 e g 1 2 3 4 5 6 共有六个数 所有组合为 1 2 3 4