设计思路: 一个含有n个数值的一维环数组。可以把他分为n个一维数组,分别求出这n个以为数组的最大值。然后他这些值放在另一个一维数组中。再比较,求出最大子数组。

代码:

package 整数环数组最大子数组的和;import java.util.Random;
import java.util.Scanner;public class one {public static void main(String[] args) {// TODO 自动生成的方法存根System.out.print("请输入数组的长度:");Scanner sr=new Scanner(System.in);int num=sr.nextInt();int [] sz =new int[num];long [] max =new long[num];Random a=new Random (num);System.out.println("随机产生的数组为:");for (int i=0;i<num;i++){sz[i]=a.nextInt(200)-100;System.out.print(sz[i]+" ");}System.out.println();long maxsum=0;long left=0;for(int j=1;j<=num;j++){maxsum=sz[j-1];left=sz[j-1];for(int l=j;l<num+j-1;l++){if(left<0){left=sz[l%num];}else{left+=sz[l%num];}System.out.println("left     maxsum   "+left+"          "+maxsum);maxsum=getmax(left,maxsum);}max[j-1]=maxsum;System.out.println(max[j-1]);}for(int n=0;n<num;n++){maxsum=getmax(max[n],maxsum);}System.out.println("最大子数组的值为:"+maxsum);}private static long getmax(long a, long b) {// TODO 自动生成的方法存根return a>b? a:b;}}实验截图:

反思:    在设计程序中。用了两个for循环,显得有些冗杂。    将大问题分解成能解决的小问题,是编程的一个重要思路。    在编程中,一定要注意数组的长度是否与你期望的所一致,避免不必要的调试。

  

转载于:https://www.cnblogs.com/twentytwo/p/4433973.html

环一维数组最大子数组问题相关推荐

  1. 求首位相连一维数组最大子数组的和

    结对成员: 朱少辉:主要负责代码编写 侯涛亮:主要负责程序测试 题目:一个首尾相接的一维整型数组,其中有正有负,求它的最大子数组并返回它的位置. 思路:在求一维子数组的基础上,先输入一个含有N个数的一 ...

  2. 结对开发——一维数组最大子数组判断溢出

    一 题目 求一维数组最大子数组和 要求:1000个数以上,整数 二.设计思路 最大子数组很好找到,但是子数组和的溢出问题很难解决. 经过不断的思考,我得出了结论: 溢出是程程序设计者设计时的不足所带来 ...

  3. 编程之美2.15 二维数组最大子数组的和(数组下标从(1,1)开始)

          首先,我们看到这篇文章的题目,我们就会想到之前的那个题目 -- 连续子数组最大和问题.这个问题无疑就是把原问题扩展到二维的情况.       想起来这个问题也不是很难,我们可以求解一维矩阵 ...

  4. 求一个二维整数数组最大子数组之和,时间复杂度为N^2

    本随笔只由于时间原因,我就只写写思想了   二维数组最大子数组之和,可以  引用  一维最大子数组之和 的思想 一维最大子数组之和 的思想,在本博客上有,这里就不做多的介绍了 我们有一个最初的二维数组 ...

  5. 返回一个二维整数数组最大子数组的和

     要求: 1,输入一个二维整形数组,数组里有正数也有负数. 2,二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和, 3,求所有子数组的和的最大值. 设计思路: 参照一维整数数组求解最大子 ...

  6. 二维数组最大子数组和

    一.实验题目 求一个二维数组中和最大的子数组. 二.实验思路 基于我们第一次合作时求的一位数组最大子数组,加上一层循环来遍历二维数组中的所有子矩阵的情况. 第一步:先利用上次的方法求每一行的情况,将每 ...

  7. 环状二维数组最大子数组求和

    题目:返回一个二维整数数组中最大子数组的和.要求:输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样. n数组中连续的一个或多个整数组成一个子数组,每个子数组都有一 ...

  8. 一维循环数组最大子数组求解

    #include "stdafx.h" #include <stdio.h> int _tmain(int argc, _TCHAR* argv[]) {int i, ...

  9. 结对开发四------求一维无头数组最大子数组的和

    一.代码思想 对第一次一维数组的延伸,增加无头无尾功能,我们的设计思想是每比较一次进行一次交换,将第一个掉到位后去第二个调到第一个,第三个调到第二个,以此类推,再进行实验一的求最大子数组的和 二.代码 ...

  10. 首尾相连的一位数组最大子数组和

    题目:在原有的一位数组上进行扩展,求首尾相连的最大子数组的和: 要求: 输入一个一维整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和 ...

最新文章

  1. 最优二叉树(哈夫曼树)知识点
  2. Django model 中的 class Meta 详解
  3. 算法的优缺点_机器学习算法优缺点 amp; 如何选择
  4. 如何将 kitten编程猫里的以分号分隔的长字符串转换成列表结构
  5. Rabbitmq消息中间件整合Springboot
  6. [Android5 系列二] 1. 全实例之控件(Widget)
  7. SQL Server2005完全版与精简版的一个差别(抄录)
  8. 大数据安全与隐私保护的问题及对策
  9. 微信公众号模板消息推送,中文乱码
  10. 考研英语阅读12种解题技巧!码住!
  11. 微信小程序清除缓存(ios和安卓的解决方法)
  12. HandlerInterceptor的使用
  13. JavaScript实现京东首页轮播图
  14. java毕业设计咖啡销售平台mybatis+源码+调试部署+系统+数据库+lw
  15. 5个球放入3个箱子_排列组合问题,把5个相同的球放到三个相同的盒子里,要求每个盒子都有球,则不同的放球方法是多少?...
  16. Linux shell随手记——ps -ef
  17. Java学习笔记(二十三)日志体系(logback)
  18. mysql无法退出命令行
  19. 单点登录,统一登录平台的食堂打饭模型
  20. 大数据-Hadoop集群测试

热门文章

  1. Mac上终端的命令总结
  2. 文件隐藏工具Funter for Mac使用方法
  3. Mac怎么连接多个蓝牙音箱?
  4. 1.2 不停机升级困难
  5. “移”网打尽:网络即服务
  6. 不同操作系统查看FC HBA卡信息的方法总结
  7. BZOJ 2821 分块+二分
  8. linux用户和组2
  9. graphx 基础算法
  10. Spring Boot 如何使用拦截器、过滤器、监听器?