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. 最大连续子段和,以及循环最大连续子段和。相关推荐

  1. 1050 循环数组最大子段和

    1050 循环数组最大子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 N个整数组成的循环序列a[1],a[2],a[3],-,a[n],求该 ...

  2. 51nod 1050 循环数组最大子段和【环形DP/最大子段和/正难则反】

    1050 循环数组最大子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 N个整数组成的循环序列a[1],a[2],a[3],-,a[n],求该 ...

  3. 线段树维护(最大区间和,最大子段和,最长连续上升子序列)

    本文主要介绍用线段树来维护(最大区间和,最大子段和,最长连续上升子序列)的问题. HDU 1540 Tunnel Warfare(最长连续区间+单点修改) 洛谷 P2894 [USACO08FEB]酒 ...

  4. 后端做app连续会员包月功能 -- IOS连续订阅 支付宝周期扣款

    IOS连续订阅总结 如何判断后续用户是续费 1. 服务端轮询续费表,会员到期的前一天,根据用户id.去苹果服务器检验用户是否续费成功a. 查询的状态应有:等待扣费.扣费失败b. 扣费失败 , 对于扣费 ...

  5. CAD连续标注怎么操作?CAD连续标注尺寸命令使用技巧

    CAD标注工具可以在图形中创建多种标注,并可对标注样式进行修改或编辑.但是有些新手设计师在绘图过程中,不知道CAD连续标注怎么操作,其实很简单,本节内容就给大家分享一下浩辰CAD软件中CAD连续标注尺 ...

  6. 【51nod - 1050】循环数组最大子段和(dp)

    题干: N个整数组成的循环序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1], ...

  7. 用循环实现连续大写英文字母的输出

    Description 输入一个大写字母,用循环实现从该大写字母到最后一个大写字母Z的依次输出 Input 起始大写字母 Output 从该其实字母开始连续后续大写字母一直到大字字母Z Sample ...

  8. Sql Server常用命令整理篇:生成连续日期序列并循环

    1.生成日期序列 特别注意:经验证number不能超过2048,超过部分不可用 --生成日期序列,特别注意,经验证number不能超过2048,超过部分不可用 select observedate s ...

  9. R语言循环、连续检验

    以正态检验为例 设置工作环境后 读取数据: A <- read.csv("data.csv") 加载包 library(nortest) 查看变量 names(A) 设置一个 ...

  10. shell循环生成连续日期

    1,给定长度,循环生成日期 begin_day=-5 end_day=0 for((i=${begin_day};i<=${end_day};i++)); doday=`date -d &quo ...

最新文章

  1. 跟小段一起学Solaris(20)---ipFilter防火墙
  2. 二、CSS知识总结(上篇)
  3. 如何在 ASP.NET CORE 中获取客户端 IP ?
  4. pointcut 排除_宁河天津玻璃门地弹簧玻璃门故障排除
  5. leetcode-search-in-rotated-sorted-array
  6. mysql5.7是测试版本吗_mysql免安装版本测试(mysql-5.7.18-winx64)
  7. java怎么获取控制台内容的类型_java 怎么获取控制台的数据并且输出到GUI上
  8. 一个复平面上的不等式
  9. 2018年1月19日 第七次小组会议
  10. iOS中事件的传递和响应者链条
  11. 森海塞尔Momentum 2无线蓝牙耳机发布:首次加入主动降噪
  12. java读取文件buffered_关于Java中使用BufferedReader读取文件的疑惑
  13. 运行Fast R-CNN的代码
  14. python装饰器理解_如何理解Python装饰器?
  15. APP自动化测试系列之Desired Capabilities详解
  16. sql高级语法之IF、IFNULL
  17. 差分管电路图_DIY一款差分输入的晶体管功放电路图
  18. sonarqube中 项目名称 问题
  19. 家庭“好用”优化师:每一件好物都是在积攒生活闪光
  20. 空指针异常(NullPointerException)

热门文章

  1. 苹果爸爸发飙,封杀 React Native?
  2. HashMap的实现原理看这篇就够了,图文源码详解,深入浅出简单易懂
  3. 【9108】模拟数学计算器
  4. 基于STEP7 V5.xWinCC V7.x快速开发项目
  5. 第6章 vector向量容器
  6. vb.net加密解密方法
  7. 使用easy_install安装BeautifulSoup——Python
  8. iOS C++ 关于深度学习(机器学习) (一)学习概览
  9. Jmeter-配置元件
  10. Kotlin学习笔记(1):标签