团队项目——最大子数组和2

设计思路:

1、定义一个长为20的数组,先对前10个数进行初始化,后10个数等于前10个数;

2、设置长度为10的循环依次以前十个数为头进行最大子数组的计算;

3,再设置一个数组用来存储每次循环产生的最大子数组和;然后取最大值

4、输出最大值

源代码:

 1 //import java.util.Random;
 2 //import java.util.Scanner;
 3 import java.util.*;
 4 public class Test {
 5
 6     public static void main(String[] args) {
 7         // TODO 自动生成的方法存根
 8         int []shuzu=new int[20];
 9         int []max=new int[10];
10         int i,sum=0;
11         //初始化数组
12         for(i=0;i<10;i++)
13         {
14             System.out.println("请输入第"+(i+1)+"个值");
15             Scanner input=new Scanner(System.in);
16             shuzu[i]=input.nextInt();
17         }
18         for(i=10;i<20;i++)
19         {
20             shuzu[i]=shuzu[i-10];
21         }
22         int w=0;
23         for(int x=0;x<10;x++)
24         {
25             sum=shuzu[x];
26             for(i=x;i<(x+10);i++)
27             {
28                 if(w<0)
29                 {
30                     w=shuzu[i];
31                 }
32                 else
33                 {
34                     w+=shuzu[i];
35                 }
36                 if(sum<w)
37                 {
38                     sum=w;
39                 }
40             }
41             w=0;
42             max[x]=sum;
43             System.out.println("各个子数组的最大子数组和为:");
44             System.out.println(max[x]);
45         }
46         int max1=max[0];
47         for(int q=0;q<10;q++)
48         {
49             if(max[q]>max1)
50             {
51                 max1=max[q];
52             }
53         }
54         System.out.println("最大子数组和为"+max1);
55
56     }
57 }

结果截图:

结果分析:w作为求和的中介,在每次不同首项求最大子数组和完毕后,必须初始化为0,不然会发生和的叠加。

时间: 2024-07-29 20:03:42

团队项目——最大子数组和2的相关文章

《团队开发项目之三二维数组的最大子数组之和》

设计思想:按列或按行的次序依次进行计算每个以列或行的次序为基准的每种情况下的每个子矩阵的和,然后再依次进行比较每个子矩阵的和,取出最大的一个即是最大字数组之和: 源代码: //二维数组的最大子数组之和 //李敏,Apr 8th #include<iostream> #include<time.h> using namespace std; void main() { int m,n,a[100][100],k,t,c,i,j,z; int maxsum,sum[100],max=0

《团队项目开发之三对一维环形数组的求解》

设计思想:通过把数组的长度扩大为原来的一倍,相当于新数组是由对原来的数组重复了一遍后而组成的,这样保证了数组以环状的形式,按照数组中每个数字的位序依次对它们可能形成的最大子数组依次进行比较,这样保证了能够始终记录每次最大子数组的位置,以便随着程序的进行不断更新直至得到最终的最大子数组之和以及最大子数组的下标. 源代码: //求一个一维环形数组的最大子数组之和,并要求返回组成最大子数组的下标 //李敏,Apr 12th #include<iostream> #include <time.h

结对开发——返回整数数组最大子数组和2

返回整数数组最大子数组和2 为了实现“敏捷开发”的目的,老师让我们采取“迭代”的方法进行项目的开发,这不,对于周一的求最大子数组和又有了新的要求,如下: 1.延续上次的要求,这里不再赘余… 2.如果数组A[0]……A[j-1]首尾相连,允许A[i-1],……A[n-1],A[0]……A[j-1]之和最大: 3.同时返回最大子数组的位置: 4.要求程序必须能处理1000 个元素,且每个元素是int32 类型的. 一.实验设计思路 首先实现的是数组首尾相连,先存入数组,再将原数组反向存储形成环形数组

软件工程结对开发之求一个数组中连续最大子数组之和

一.团队成员: 檀威,陈志利 二.项目名: 求一个数组中连续最大子数组之和 三.我们的设计思路: 设sum[i]为以第i个元素结尾且和最大的连续子数组.对于元素i,所有以它前面的元素结尾的子数组的长度都已经求得,那么以第i个元素结尾且它们之和最大的连续子数组要么是以第i-1个元素结尾且它们之和最大的连续子数组加上这个元素,要么是只包含第i个元素,即sum[i] = max(sum[i-1] + arr[i], arr[i]).可以通过判断sum[i-1] + arr[i]是否大于arr[i]来做

HeyWeGo小组《Java程序设计》 2015—2016年学期团队项目总结

HeyWeGo小组<Java程序设计> 2015—2016年学期团队项目总结 题目简介 一个简单的扫雷小游戏,在12*12的方格盘上,首先可以设定雷的个数,然后点击开始程序就会随机布雷,开始游戏后如果点到雷就会显示游戏结束,如果没有,会出现数字表示周围一圈雷的个数,以此推理当扫出所有雷将显示游戏胜利. 游戏项目规划: 确定游戏中方块格子的个数 确定游戏中地雷的个数(初始10个),完成布雷 计算每个方块周围的雷数,在方块周围本身没有地雷的情况下,统计周围地雷的个数 若周围没有地雷则翻开周围的空白

最大子数组之和

返回一个整数数组中最大子数组的和,细化分析: 1,在所有以元素tail结尾的子数组中,选出元素和最大的子数组,tail=1,2...n. 2,以元素k结尾的和最大的子数组是包含以元素tail-1结尾的和最大的子数组还是就只有元素tail这一个元素,一共有这两个可选状态. 3,在得到以每个元素结尾的和最大的子数组之后,只要取其中最大值就是所有子数组中最大的子数组. 团队成员:王硕  http://home.cnblogs.com/u/WS1004/ #include <iostream> #in

Visual Studio 2015的安装,另附最大子数组的实现与单元调试

上个学期,由于不知名的原因,我的个人笔记本电脑的显卡驱动程序被破坏,个人能力又有限几次尝试修复都以失败告终,并且伴随着显卡驱动的失灵导致各种问题,进而电脑运行速度缓慢,基于以上原因,在刚刚过去的上个暑假,我到我所在的城市电脑售后对我的电脑进行了系统更新和清灰操作,这次重装系统,我依然选择了已经使用了一段时间的Win10系统,也正是由于系统盘的重做,导致原来下载好的一些软件无法再继续使用,故借着这次软件工程作业的机会,充新安装Visual Studio这款功能强大的编程软件.原来我使用的是Visu

Java团队项目总结

Java团队项目总结 1.项目实现情况 项目概述: 我们团队项目准备实现一个有关于大富翁有的游戏程序. 大富翁游戏,以经营权为主要的游戏方式,通过购买经营权与架构经营的星级服务来获得最大的利益,当其他玩家破产后,最后一个玩家取得胜利来结束游戏.在百度词条上示意为,默认多幅地图,以掷骰点数前进,并有多种道具.卡片使用,另外触发一些“特别事件”.主要通过购买房产,收取对方的路费.租金来导致对手的破产. 项目预期: 鉴于对java学习的程度和掌握内容,基本实现大富翁的游戏内容我们的项目打算实现以下目标

Music Player团队项目(一)

团队成员及分工 团队: Blue 团队共有六人 姓名:     学号后四位:       贡献分: 张   宇(队长)  1152          1+1.8=2.8分 侯贺琦          1027          1+0.7=1.7分 张玉冕          1153          1+0.3=1.3分 康   贺          1169          1+0.3=1.3分 丁志愿          1011          1+0.4=1.4分 李锦城