zoukankan      html  css  js  c++  java
  • 最大子数组

    题目要求:

    输入一个一维整形数组,数组里有正数也有负数。一维数组首尾相接,像个一条首尾相接带子一样。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。

     

    程序设计思路:

         (1)创建一个一维数组a[],进行数据存储

      (2)定义变量n用于求和,m为和的最大值

         (3)找到数组a的最小值,创建数组b,将数组a中的最小值及其后面的值赋到数组b中,然后将a数组中最小值前面的值依次连接在数组b中,然后进行求最大子数组和的运算,进行for循环,将n初始化为0,m初始化为a[0],循环内容为n+=a[i];如果n比m大则将n值赋给m,如果n小于0,则定义n=0。直到循环结束,得到最大子数组的和,即为所求数组构成的环中最大子数组的和。

    源代码:

    package demo;
    
    public class Mmax {  
        public static int aa(int[] a) {  
        	int []b=new int[10];
            int m = 0;
            int n = 0;  
        	int i;
            int j=0;
            int t=0;
            int k=a[0];
            for(i=0;i<a.length;i++) {        	
           	    if(k>a[i]) { 
           		  k=a[i]; 
           		  j=i; 
           	    } 
            }
            t=j; 
            i=0; 
            while(j<a.length) {   	 
           	     b[i]=a[j]; 
           	     i++; 
           	     j++;  
            }    
            j=0; 
            while(j<t) {     	 
           	    b[i]=a[j];
           	    i++; 
           	    j++; 
            } 
            for(i=0;i<a.length;i++) {     	 
           	    n+=b[i];
           	    if(m<n) {  
           		    m=n; 
           		} 
           	    if(n<0) {    		   
           		    n=0; 
           	    } 
            }
            return m;
     
    } 
    
      
        public static void main(String[] args) {  
            int a[] = { 9,-8,5,1,4,7};  
            System.out.println("最大子数组的和为"+aa(a));  
        }  
    }
    

      

     程序截图:


    总结:
       这次的作业,由于是两个人结对编程,所以相比较一个人来说轻松许多,这也就是结对编程的优点吧,我和于莅翔一块努力并逐步将程序完善,两个人结对编程,更可以及时发现自己的错误,找到自己的缺点,扬长避短,以后编程才会更容易,更得心应手。

  • 相关阅读:
    POJ 2240 Arbitrage spfa 判正环
    POJ 3259 Wormholes spfa 判负环
    POJ1680 Currency Exchange SPFA判正环
    HDU5649 DZY Loves Sorting 线段树
    HDU 5648 DZY Loves Math 暴力打表
    HDU5647 DZY Loves Connecting 树形DP
    CDOJ 1071 秋实大哥下棋 线段树
    HDU5046 Airport dancing links 重复覆盖+二分
    HDU 3335 Divisibility dancing links 重复覆盖
    FZU1686 神龙的难题 dancing links 重复覆盖
  • 原文地址:https://www.cnblogs.com/jokerr/p/6653434.html
Copyright © 2011-2022 走看看