最大子序列和问题以及确定序列起终点位置

2023-10-26

在学习数据结构遇到的第一个问题就是一个最大子序列和的问题,以PAT(点击打开链接)上的一道题作为例子来总结一下求解这类问题时一些常用的方法。网上讲述子列和问题的博客及文章已经很多了,这里就不在阐述穷举法和递归法的方式来求解了,有需求的小伙伴可以去谷歌然后百度一下。这篇博文重点讲解一下最优时间复杂度的的线性处理方式和一点点关于这个问题的扩展。

首先上的这幅图就是PAT上的那道题,想深入了解就自己点上面给的链接。

线性处理的原理:如果某个子列和的值为负数,则最大子序列和的起点肯定不会在这个子序列中。从左到右记录当前子序列的和sum,如果后面的数一直为正数,那么最大子序列的和max也不断增加,同时不断更新max值。如果遇到负数,那么当前子序列的和将会减小。此时sum 将会小于max,当然max也就不更新。如果sum ≤ 0时,说明前面已经扫描的那一段就可以抛弃了,这时将sum置为0。然后,sum将从后面开始将这个子段进行分析,分析方式与上述相同。

此题处理代码:

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

最大子序列和问题以及确定序列起终点位置 的相关文章

  • vue 登录页面记住密码功能

    vue iview element 一般用来快速搭建后台管理系统 登录页的记住密码功能也是必不可少的 记住密码快速登录功能 iview ui 思路 首次登录 记住密码 将密码存储到cookie中 退出登录 下次进来的时候 读取cookie登
  • chatgpt赋能python:PythonSave函数:保存和保护你的数据

    Python Save函数 保存和保护你的数据 Python Save函数是Python编程中最常用的函数之一 它允许开发者将数据保存到文件或数据库中 在未来的操作中访问和使用 无论你是处理大数据集还是需要保护数据免受未经授权访问 Pyth
  • c++ 文件操作

    1 根据需要引用头文件 include

随机推荐

  • ARM的MMU内存管理工作原理

    文章目录 1 虚拟地址 物理地址 逻辑地址 线性地址 运行地址之间的联系 2 MMU是什么 以及有mmu有什么作用 3 MMU RAM与arm core之间的关系 4 MMU的TLB与配置 5 MMU的地址映射 5 1 1M的section
  • 微信扫描普通二维码进入小程序

    微信扫描普通二维码进入小程序的方法 和代码没有什么关系 主要是在小程序平台进行设置 1 开发配置 开发 开发管理 开发设置 扫普通链接二维码打开小程序 2 配置规则 根据说明配置内容就行 后面有说带参数的配置和怎么在小程序里面获取参数 带参
  • 应急响应流程以及入侵排查

    归纳转载于 应急响应的整体思路和基本流程 FreeBuf网络安全行业门户不管是普通的企业 还是专业的安全厂商 都不可避免的需要掌握和运用好信息安全的知识 技能 以便在需要的时候 能够御敌千里 https www freebuf com ar
  • javascript实现关键字搜索和匹配关键字高亮效果

    效果图
  • 力扣1462.课程表

    题目描述 你总共需要上 numCourses 门课 课程编号依次为 0 到 numCourses 1 你会得到一个数组 prerequisite 其中 prerequisites i ai bi 表示如果你想选 bi 课程 你 必须 先选
  • linux 统计 程序运行时间

    这篇文章写的很详细 转一个 我们有时需要得到程序的运行时间 但我们也要知道 根本不可能精确测量某一个程序运行的确切时间 3 文献 4 中说的很明白 现摘录如下 我们平时常用的测量运行时间的方法并不是那么精确的 换句话说 想精确获取程序运行时
  • 【Linux常用命令整理】(一)

    找到了一个linux命令词典https www linuxcool com ls list files 显示指定目录下的文件及属性信息 常用参数 a 显示所有文件及目录 包括以 开头的隐藏文件 l 使用长格式列出文件及目录的详细信息 dat
  • docker安装配置elasticSearch

    安装ElasticSearch 启动镜像脚本 docker stop elasticsearch docker rm elasticsearch docker run name elasticsearch p 9200 9200 p 930
  • 苹果未能与恢复服务器取得联系解决

    由于系统时间导致 打开终端 输入 ntpdate time apple com
  • SQL 数据初级查询—实验报告

    一 实验目的 熟练掌握表中数据的各种查询功能 为后继学习作准备 二 实验属性 1 了解并掌握SQL管理控制器的使用 2 掌握基本表的数据查询 三 实验仪器设备及器材 1 每人一台计算机 2 计算机安装有SQL SERVER2008 四 实验
  • 【Scaled-YOLOv4】

    COCO数据集AP被刷到了55 4 FPS 15 核心是在YOLOV4上研究模型缩放 model scaling 技术 尽管在算法设计上 该文并没有带来重要亮点 但从工程应用的角度讲 Scaled YOLOv4 还是不错的 尤其是 YOLO
  • 单片机设计_语音识别分类智能垃圾桶(STM32 ESP8266 LD3320)

    想要更多项目私wo 一 电路设计 离线语音识别识别垃圾种类并且垃圾桶自动翻盖 说出唤醒词 垃圾桶 后 再说一句垃圾名称 语音识别模块端识别到相应关键词 便会将结果通过串口发送到STM32端 STM32端接着会发送打开相应垃圾桶盖的指令 6s
  • jitter单位_抖动(jitter)测量

    近年来 抖动 Jitter 已经成为通信工程师非常重视的信号特征 在数字系统中 时钟频率正在变得越来越高 随着速率的升组 在上升沿或是下降沿哪性是微小的变化也变得越来越重要 因为时钟或数据的抖动会影响到数据的完整性 建立时间和保持时间 并且
  • Mac移动硬盘无法使用/装载报错

    Mac移动硬盘无法使用 装载报错 事情起因 之前拔插机械硬盘的时候 忘记在关机前拔掉 导致移动硬盘直接断电 试用win电脑发现硬盘无损坏 插在MacBook上能识别但是无法显示里面的内容或进行操作 进入设置里对盘装载报错 装载 急救 启动盘
  • python实用脚本(五)——numpy的使用

    本期主题 python的numpy使用 往期链接 python实用脚本 一 批量修改目标文件夹下的文件名 python实用脚本 二 使用xlrd读取excel python实用脚本 三 通过有道智云API实现翻译 python实用脚本 四
  • C++:json解析,json与string互相转换

    Github nlohmann json nlohmann json简单用法 C 使用json json与string转换使用笔记
  • python绘制折线图显示点数据_python matplotlib 同时画散点图和折线图,如何将散点放在最上层???...

    代码 一 from random import choice class RandomWalk 一个生产随机漫步数据的类 def init self num point 5000 初始化随机漫步属性 self num point num p
  • RobotFramework 安装步骤

    Robot Framework 通用型黑盒自动化框架 框架优点 1 测试报告 2 执行部分用例 冒烟测试 3 初始化清除 一 安装Python3 建议3 6版本以上 二 安装RobotFramework 进入dos窗口 输入pip inst
  • 使用 Gitee + PicGo + Typora 搭建图床

    图床搭建过程简单 该博客只是为了记录并测试刚搭建好的图床 一 Gitee 1 新建仓库 填写好下图红框所示 并且选择开源 创建完后会跳转到仓库 记住这个网址 等下会在PicGo中用到 2 获取takon私人令牌 打开设置 点击私人令牌 生成
  • 最大子序列和问题以及确定序列起终点位置

    在学习数据结构遇到的第一个问题就是一个最大子序列和的问题 以PAT 点击打开链接 上的一道题作为例子来总结一下求解这类问题时一些常用的方法 网上讲述子列和问题的博客及文章已经很多了 这里就不在阐述穷举法和递归法的方式来求解了 有需求的小伙伴