zoukankan      html  css  js  c++  java
  • 软件工程第四周课堂作业

    循环一维数组求子数组之和的最大值:

    代码如下:

    package text;
    import java.util.*;
    import java.util.Scanner;
    public class shuzu2 {
      public static int maxSum(int arr[]){  //定义一个函数maxSum 求数组中子数组和的最大值
             int sum = arr[0];   //sum 子数组和
             int b = 0;         
             for(int i = 0;i<arr.length;i++)
             {  
                 if(b<=0) 
                 { b=arr[i]; } //子数组和小于0时,b为子数组为0时的元素的后一位 
                 else  
                     {b+=arr[i]; } //b 子数组和
                       if(b>sum)sum=b;  //将最大子数组和赋值给sum
             }  
             return sum;  
         }  
     public static void main(String[] args) {  
             System.out.println("请输入数组中元素个数;");
             Scanner reader=new Scanner(System.in);
             int n=reader.nextInt();
             int []array=new int[n];
             int []array1=new int[n];
             System.out.println("请输入数组:");
             for(int i=0;i<n;i++)    //输入数组
             {
              array[i]=reader.nextInt();
             } 
             int sum = maxSum(array);   //调用函数
             for(int i=1;i<n;i++)       //循环n-1次,从第二个数往后依次作为数组第一个数
             {
              for(int j=0;j<n;j++)  //通过取余保证数组首尾相接
              {
               array1[j]=array[(j+i)%n];
              }
               int sum1= maxSum(array1);   //调用函数
               if(sum1>sum)      //取每个数组子数组最大值
               {
                sum=sum1;
                  }
             }
             System.out.println("最大字数组之和为:"+sum);  
         }   
    }

    运行结果:

  • 相关阅读:
    查看端口有没有被占用
    微信公众号2()
    How to insert a segment of noise to music file
    puppet practice
    Docker Commands
    LempelZiv algorithm realization
    The algorithm of entropy realization
    Java network programmingguessing game
    Deploy Openstack with RDO and Change VNC console to Spice
    puppet overview
  • 原文地址:https://www.cnblogs.com/lover995/p/10588678.html
Copyright © 2011-2022 走看看