描述

给定一个长度为 n 的环形整数数组,请你求出该数组的 非空连续子数组 的最大可能和 。
环形数组 意味着数组的末端将会与开头相连呈环状。例如,对于数组 [1,3,-5,2,-4]而言,第一个数 1的前一个数是最后一个数 -4。

输入描述:

第一行输入一个正整数 n ,代表数组的长度。
第二行为 n 个整数 ai​,每个整数之间用空格隔开,代表数组的各个元素。

输出描述:

输出一个整数,为原数组的非空子数组的最大可能和。

思路;
1.有环情况:先求出无环情况下连续子数组的最小值 res2,然后用数组和 sum 减去最小值 res2 即为环形情况下的连续子数组最大值.
2.无环情况:最大子数组和
3.最大的环形子数组和 = max(最大子数组和,数组总和-最小子数组和),要排除全负数情况=最大子数组和

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;int main()
{int n = 0;cin >> n;vector<int> a(n);int sum = 0;for (int i = 0; i < n; ++i){cin >> a[i];sum += a[i];}vector<int> dpmn(n);vector<int> dpmx(n);dpmn[0] = a[0];dpmx[0] = a[0];int mn = dpmn[0];int mx = dpmx[0];for (int i = 1; i < n; ++i){dpmn[i] = min(dpmn[i - 1] + a[i], a[i]);dpmx[i] = max(dpmx[i - 1] + a[i], a[i]);mn = min(mn, dpmn[i]);mx = max(mx, dpmx[i]);}int res = 0;if (mx>0)//如果全是非负数res = max(mx, sum - mn);elseres = mx;cout << res;return 0;
}

线性dp:DP9 环形数组的连续子数组最大和相关推荐

  1. 数组的连续子数组最大和(首尾相连)

    题目: 求一个循环数组的连续子数组的最大和. 解法: <编程之美>上给出一种方法: 1)求[0, n-1]的最大和: 2)如果跨过了n-1,则计算以n-1为尾部的最大子数组[i, n-1] ...

  2. php取数组中连续数,PHP实现求连续子数组最大和问题2种解决方法

    本文实例讲述了PHP实现求连续子数组最大和问题2种解决方法.分享给大家供大家参考,具体如下: 问题描述 求子数组的最大和 题目描述: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整 ...

  3. 结对开发项目:求整数数组中连续子数组和的最大值

    小组成员:安娜 王鑫楠 题目二:求整数数组中连续子数组和的最大值. 1.分析过程: 题目收到后,前五分钟设计算法,首先也想到是不是一次遍历可以解决,考虑了一下觉得难度有点大最后还是果断放弃.我刚开始的 ...

  4. lintcode循环数组之连续子数组求和

    v 题目:连续子数组求和 II 给定一个整数循环数组(头尾相接),请找出一个连续的子数组,使得该子数组的和最大.输出答案时,请分别返回第一个数字和最后一个数字的值.如果多个答案,请返回其中任意一个. ...

  5. 返回一个数组的连续子数组和的最大值

    package wodeshiyao;import java.util.Scanner;public class lalala {static Scanner scan=new Scanner(Sys ...

  6. 关于求已知整数数组的连续子数组的最大和的方法 ——基于一维数组的循环,甚至推广到二维情况上...

    日期:2019.3.21 博客期:049 星期四 先二话不说,先交代码,今天训练的内容是"这个整数数组是允许开头和结尾结合在一起的",大家的思路都是扩大数组内容,就是将读入的数据存 ...

  7. 【线性 dp】B003_LC_最长湍流子数组(读题 dp / 双指针)

    一.Problem 当 A 的子数组 A[i], A[i+1], -, A[j] 满足下列条件时,我们称其为湍流子数组: 若 i <= k < j,当 k 为奇数时, A[k] > ...

  8. 30. 连续子数组最大和

    题目 在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7 ...

  9. 【剑指offer】_05 连续子数组最大和

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

最新文章

  1. 在Ubuntu 16.04.6 LTS上升级python 3.5到3.7.3实录
  2. YOLO-ReT让边缘端也可以实时检测
  3. 【错误记录】Flutter 设备连接显示 Loading... ( 断网 | 删除 flutter/bin/cache/lockfile 文件 )
  4. Cache模拟器(CacheSim)
  5. 关于数据准确性,精益求精,神策数据矢志不渝的坚持
  6. python人工智能_人工智能人才缺口千万!学Python抓住风口机会
  7. java 执行机制_Java类的执行机制
  8. 如何获取LanuchImage
  9. 2.12.PHP7.1 狐教程-【PHP 全局变量】
  10. 数学建模之预测方法总结与案例
  11. SpringCloud教程
  12. MATLAB中的转置 和 复数的共轭转置
  13. win10下使用opencv4.5.0 cuda版本编译和目标检测的几个问题
  14. 深度摄像头linux环境下,嵌入式Linux环境下USB摄像头应用程序设计.pdf
  15. 图灵奖得主、《龙书》作者最新力作:抽象、算法与编译器
  16. Android中高级进阶开发面试题冲刺合集(七)
  17. Unity3D 基于XLua框架实现Lua组件化开发方式(一)----基于C#调用Lua
  18. 知其然(3)*.java文件中可以包含多个类,但最多只能有一个类,其修饰符为public
  19. c# 远程网络唤醒电脑(电脑远程开机+内网MAC和IP扫描)(附带源码+主板和Windows开启详细说明+外网远程唤醒方案)
  20. Android QQ 登录接入详细介绍

热门文章

  1. 通讯录姓氏多音字的问题解决
  2. 计算机桌面点不进系统,电脑开机进不了桌面,小编教你电脑开机进不了桌面怎么办...
  3. ubuntu系统无法识别到U盘
  4. 220514西南科技正式赛补题
  5. 不解,排名靠前那么多的人为什么抄袭我的activit博文??
  6. 复盘:智能座舱系列文六- 它的3种交互方式之显式交互(语音以及显示)
  7. 安卓开发报错:“unfortunately,sy6 has stopped”
  8. 2022年Github学生包搞起 || copilot、jetbrains一起搞
  9. leetcode-169. Majority Element
  10. 简析PPC的Device Tree机制