zoukankan      html  css  js  c++  java
  • 课堂测试总结-数组(三)

      这节课,我们在原数组的基础上做了改进,即将数组首尾相接然后求最大子数组,刚开始我看到题目时想到的是首尾相连后的新数组的子数组,并求出所有子数组得值填入新数组,并用冒泡排序进行排序,求得最大子数组的值,但是事实却繁琐,很麻烦。之后很多同学上讲台演示自己的代码,一个同学说除了自己的想法,就是将所求的数组后面再加上自己本身,但舍去最后一个值。即n-1个数。之后弄原来的办法进行求所有子数组,加入到新数组中,这样很简单,而且很明了,10分钟就完成了整个测试。源代码如下:

    package test;//数组首尾相接

    import java.util.Scanner;

    public class shuzu3 {
    public static void main(String []args)
    {
    Scanner s=new Scanner(System.in);
    System.out.println("请输入数组数目:");
    int sum=s.nextInt();
    int []a=new int[sum];
    System.out.println("请输入"+sum+"个数:");
    for(int i=0;i<sum;i++)
    {
    a[i]=s.nextInt();
    }
    s.close();
    int []b=new int[2*sum-1];
    for(int i=0;i<sum;i++)
    {
    b[i]=a[i];
    }
    for(int i=sum;i<2*sum-1;i++)
    {
    b[i]=a[i-sum];
    }
    int []c=new int[sum*sum];
    int temp1=0;
    for(int i=0;i<sum;i++)
    {
    int temp=0;
    for(int k=i;k<i+sum;k++)
    {
    temp=temp+b[k];
    c[temp1]=temp;
    temp1++;
    }
    }
    for(int i=0;i<sum*sum-1;i++)
    for(int k=0;k<sum*sum-1-i;k++)
    {
    if(c[k]<c[k+1])
    {
    int temp2=c[k];
    c[k]=c[k+1];
    c[k+1]=temp2;
    }
    }
    System.out.println("最大的子数组和为"+c[0]);
    }
    }

    结果:

  • 相关阅读:
    unittest_assert断言(4)
    unittest_skip跳过用例执行(3)
    unittest_TestSuite测试套件(2)
    unittest_认识unittest(1)
    Selenium_POM架构(17)
    【转】HTML基本代码
    cursor 鼠标样式的几种样式
    【笔记】在json-lib中如何不序列化某些字段
    关于Ext的一些使用心得
    GIT
  • 原文地址:https://www.cnblogs.com/jccjcc/p/10585722.html
Copyright © 2011-2022 走看看