A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1021361407 中级黑马   /  2015-4-9 15:30  /  566 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. <img border="0" alt="" src="http://bbs.itheima.com/forum.php?mod=image&aid=68392&size=300x300&key=933dc64c1e6363ef&nocache=yes&type=fixnone" aid="attachimg_68392">package 论坛提问;

  2. import java.util.*;
  3. import org.junit.Test;

  4. /*
  5. * 有一个数字串array,包含100个正数和负数随机分布,要找到他的一个子串array[i...j](0<=i<=j<=100),
  6. * 使得在array的所有子串中,array[i...j]的和最大。比如:串{1,-3,5,-2,6}的最大子串为{5,-2,6}。
  7. */
  8. public class maxSum {
  9.         @Test
  10.         public void test(){
  11.                 List<Integer>list=new ArrayList<Integer>();
  12.                 Integer max = -100;//初始最大值设为-100
  13.                 int value;
  14.                 for(int i=0;i<100;i++)
  15.                         list.add((int)(Math.random()*200-100));//随机生成-100~100(不包括100)之间的数。
  16.                 System.out.println(list);

  17.                 for(int i=0;i<list.size()-1;i++){
  18.                         for(int j=i+1;j<list.size();j++){
  19.                                 value=(int)sum(list.subList(i, j));
  20.                                 if(max<value)
  21.                                         max=value;
  22.                         }
  23.                 }
  24.                 System.out.print(max);
  25.         }
  26.         /*
  27.          * 求数组中数的和
  28.          */
  29.         static Integer sum(List<Integer> list){
  30.                 int sum=0;
  31.                 Iterator it=list.iterator();
  32.                 while(it.hasNext()){
  33.                         sum+=(int)it.next();
  34.                 }
  35.                 return sum;
  36.         }
  37. }
复制代码

捕获.PNG (17.19 KB, 下载次数: 7)

捕获.PNG

1 个回复

倒序浏览
学习了········
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马