8.9. 最大连续子段和,以及循环最大连续子段和。
8. 有一个包含n个元素的数组arr,计算最大的子段和(允许空段),即。
9. 有一个包含n个元素的首尾相连的环形数组arr,计算最大的子段和(允许空段)。
样例:数组[1, 3, -2, 6, -1],最大子段和应该为9,对应的子段为[6, -1, 1, 3]。
using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace ConsoleApplication8 {class Program{static void Main(string[] args){int[] inputArr = { 1, -2, 3, 10, -4, 7, 2, -5 };int[] inputArr2 = { 1, 3, -2, 6, -1 };Console.WriteLine(MaxSumSubArray(inputArr));Console.WriteLine(MaxSumSubLoopArray(inputArr2));}static int MaxSumSubArray(int[] input){if (input == null || input.Length == 0){throw new Exception("input can't be empty.");}int result = 0;int sum = 0;for (int i = 0; i < input.Length; i++){if (sum <0){sum = 0;}sum += input[i];if (sum > result){result = sum;}}if (result == 0){result = input[0];for (int i = 0; i < input.Length; i++){if (input[i]>result){result = input[i];}}}return result;}static int MaxSumSubLoopArray(int[] input){int[] intArr = new int[input.Length*2];for (int i = 0; i < input.Length; i++){intArr[i] = input[i];intArr[i + input.Length] = input[i];}int count = 0;int sum = 0;int result = 0;for (int i = 0; i < intArr.Length; i++){sum = 0;count = 0;for (int j = i; j < intArr.Length; j++){if (sum<0||count==input.Length-1){break;}sum += intArr[j];count++;if (sum>result){result = sum;}}}return result;}} }
View Code
转载于:https://www.cnblogs.com/Ligeance/p/3535691.html
8.9. 最大连续子段和,以及循环最大连续子段和。相关推荐
- 1050 循环数组最大子段和
1050 循环数组最大子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 N个整数组成的循环序列a[1],a[2],a[3],-,a[n],求该 ...
- 51nod 1050 循环数组最大子段和【环形DP/最大子段和/正难则反】
1050 循环数组最大子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 N个整数组成的循环序列a[1],a[2],a[3],-,a[n],求该 ...
- 线段树维护(最大区间和,最大子段和,最长连续上升子序列)
本文主要介绍用线段树来维护(最大区间和,最大子段和,最长连续上升子序列)的问题. HDU 1540 Tunnel Warfare(最长连续区间+单点修改) 洛谷 P2894 [USACO08FEB]酒 ...
- 后端做app连续会员包月功能 -- IOS连续订阅 支付宝周期扣款
IOS连续订阅总结 如何判断后续用户是续费 1. 服务端轮询续费表,会员到期的前一天,根据用户id.去苹果服务器检验用户是否续费成功a. 查询的状态应有:等待扣费.扣费失败b. 扣费失败 , 对于扣费 ...
- CAD连续标注怎么操作?CAD连续标注尺寸命令使用技巧
CAD标注工具可以在图形中创建多种标注,并可对标注样式进行修改或编辑.但是有些新手设计师在绘图过程中,不知道CAD连续标注怎么操作,其实很简单,本节内容就给大家分享一下浩辰CAD软件中CAD连续标注尺 ...
- 【51nod - 1050】循环数组最大子段和(dp)
题干: N个整数组成的循环序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1], ...
- 用循环实现连续大写英文字母的输出
Description 输入一个大写字母,用循环实现从该大写字母到最后一个大写字母Z的依次输出 Input 起始大写字母 Output 从该其实字母开始连续后续大写字母一直到大字字母Z Sample ...
- Sql Server常用命令整理篇:生成连续日期序列并循环
1.生成日期序列 特别注意:经验证number不能超过2048,超过部分不可用 --生成日期序列,特别注意,经验证number不能超过2048,超过部分不可用 select observedate s ...
- R语言循环、连续检验
以正态检验为例 设置工作环境后 读取数据: A <- read.csv("data.csv") 加载包 library(nortest) 查看变量 names(A) 设置一个 ...
- shell循环生成连续日期
1,给定长度,循环生成日期 begin_day=-5 end_day=0 for((i=${begin_day};i<=${end_day};i++)); doday=`date -d &quo ...
最新文章
- Android :landscape||portrait 切换
- php tcp和udp的区别,HTTPS 和 HTTP、UDP 和 TCP 的区别
- 如何在SAP云平台Neo环境里进行workflow(工作流)的开发
- char 与 String 相等比较
- 在NetBeans IDE 6.9.1上搭建Android SDK环境(WIN和Linux平台)
- 韩顺平php视频笔记83-87 防盗链 $_SERVER http协议相关 文件相关
- matlab fwrite 多字节,单片机多字节串口接收
- 你会买新款 Macbook Pro 么?
- kprobe原理解析(一)
- java alder32,[java][io][ZIP]应用GZIP进行压缩和解压缩
- 西威变频器avo下载调试资料_小白妙招 | G120/G120C 变频器模拟量断线速度保持
- gcc 源码下载地址
- 重启iis的命令是什么?三种简单的重启方式
- 安卓按键:紫猫老师的正则教程
- C语言中文件指针,文件位置指针,详细解析
- 关于工程总承包(EPC)项目最高限价的说明
- 蒟蒻的网络流24题解题记
- etoken显示连接服务器失败,etoken
- 机器学习知识总结 —— 11. 关于目标检测中的IoU是什么
- NOIP2016模拟 星际争霸(二分)