昨天晚上花了几个小时,终于把这个题目给实现了。后面再优化。今天先贴出来晒晒。

据说是浙江大学计算机系一道考研题目(给定一个有符号整形数组,输出和胃最大并且连续的子数组)。当初只会算最大值,不会返回一个数组作为结果。花了点时间,把程序改进了一下。有些不成熟。先放放。好歹是实现了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace SumMax
{class Program{public int[] Sum_Max(int[] array){int sum = 0;int max = array[0];int i = 0;int index_start = i;int index_end = i;int index_temp = 0;for (i = 0; i < array.Length;i++ ){if (sum >= 0)///Sum if the result >= 0.
                {sum += array[i];}else   ///A new sum if the result of sum < 0 and a new start for the new array
                {sum = array[i];index_temp = i;}if (sum > max)  ///Compare the max and result of sum and set the index end if sum > max
                {max = sum;index_end = i;}if (index_temp <= index_end) ///if Temp < end, start should be changed
                {index_start = index_temp;}}/// create the result to be a new arrayint[] result = new int [index_end - index_start + 1];for (int index = 0; index < result.Length; index++){result[index] = array[index_start++];}return result;}static void Main(string[] args){int[] array = { 2, 3, -6, 10, 50, 80, -100, -200, 50}; /// a test case
Program p = new Program();int[] resultArray = p.Sum_Max(array);int sum = 0;foreach (int a in resultArray){sum += a;Console.Write(a + ", ");}Console.WriteLine();Console.Write(sum);Console.ReadLine();}}
}

转载于:https://www.cnblogs.com/simontaylor/p/3725363.html

一道数组求连续子集最大值的题目。相关推荐

  1. JAVA 遍历数组求平均值与最大值

    求平均值与最大值 实现前需要懂得如何获取数组长度实现数组遍历 例如: int[] array = {2,3,6,8,18}; for(int i = 0 ; i<array.length; i+ ...

  2. java求数组的平均值_Java中数组求平均值,最大值,最小值。

    //从控制台任意输入六个数字,然后输出六个数字的平均值,最大值以及最小值. import java.util.Scanner; public class Text2 { public static v ...

  3. C语言求二维数组平均数,一道JavaScript的二维数组求平均数的题

    JavaScript中只支持一维数组,但是可以在数组中嵌套数组来创建二维以至于多维的数组.今天下午在看书时候,发现一道感觉比较有意思的题,就是js中如何求二维数组的列之和和行之和,现在就给大家分享下, ...

  4. 求连续子序列平均最大权值的问题

    原题链接 求长度为n.m(<=1e5)的a,b两组数组一段长度不小于x.y的连续子序列平均最大权值. 分析: 要求一个数组a长度不小于len的连续子序列平均最大权值. 二分答案x,令b[i]=a ...

  5. 编程笔试(解析及代码实现):序列重排之给一个长度为n的序列A,求找出某种排列方式使得相邻两个数的差值之和最大并求出该最大值

    编程笔试(解析及代码实现):序列重排之给一个长度为n的序列A,求找出某种排列方式使得相邻两个数的差值之和最大并求出该最大值 目录 题目描述 代码实现 题目描述 序列重排:给一个长度为n的序列A,求找出 ...

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

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

  7. 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)

    输入一个整型数组,数组里有正数也有负数.数组中的一个或连续多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n).(奇安信-wab前端) 例如,输入的数组为{ 1.-2.3.10. ...

  8. 《团队开发一(求一个数组的连续的子数组之和的最大值)》

    <团队开发一(求一个数组的连续的子数组之和的最大值)> (1)设计思想:一般的,求一个数组的最大子数组之和即是按数组顺序依次让前几个数的和与下一个数进行比较,设一变量来装每次比较后的较大的 ...

  9. 《github一天一道算法题》:分治法求数组最大连续子序列和

    看书.思考.写代码. /**************************************** copyright@hustyangju * blog: http://blog.csdn.n ...

最新文章

  1. Matlab 格式化字符串sscanf
  2. mybatis学习(36):动态sql-set
  3. Windows 10 开启有线无线802.1x脚本
  4. JSON(3)--- 数组
  5. 三星Galaxy S21 FE现身Geekbench:骁龙888+6GB运存
  6. html和css的重难点知识
  7. 玩转华为ENSP模拟器系列 | 配置TWAMP Light统计业务示例
  8. 计算机画画作品 人物 游泳,幼儿人物画游泳的人
  9. 在windows10上安装图形化ubuntu桌面(亲测有效)
  10. Metasploit后门渗透Linux系统以及跨平台后门生成
  11. python open 函数漏洞_python和django的目录遍历漏洞
  12. 计算机在我们的生活中越来越重要英语,职业高中高一下学期期末英语试题卷5(含答案)...
  13. 自考计算机网络管理串讲笔记,自考“计算机网络技术”串讲
  14. 机器学习数据挖掘-软件、网站、课程资源知识点汇总
  15. echo “新密码“ | passwd --stdin 用户名
  16. Java-web案例2(扩展了session与cookie)
  17. PCL demo运行
  18. python中font的用法_使用Python库判断字符是否在字体里
  19. 手机备忘录每个月的10号定时提醒怎么设置
  20. [Java]用面向对象的知识来做一个简易版植物大战僵尸

热门文章

  1. Qt入门(3)——信号和槽
  2. SQL Server索引进阶第六篇:书签
  3. 中国3大移动公司(电信,联通,移动)频率分配大全(GSM,CDMA,CDMA2000,WCDMA,TD-SCDMA,LTE TD,FDD)
  4. C语言函数内static关键字 疑惑
  5. 电脑打开html不显示图片,网页不显示图片,详细教您网页不显示图片怎么解决
  6. 数据结构-堆(最大堆)
  7. 阿里云 RTC QoS 弱网对抗之变分辨率编码
  8. 云原生是企业数字创新的最短路径
  9. 谈谈战双的战斗机制设计趋同
  10. 《仙剑奇侠传》的宗教元素考察(一):赵灵儿的宿命之旅