使用动态规划法求数组的最大子数组

从数组的第二个数据开始,如果加上上一个数据后比原数据大则加上,否则不变;依次推到最后一个数据。然后选出其中最大的数据。

代码如下

package max;

import java.util.Scanner;

public class Maxnnum {
    public static void main(String[] args) {
        int []a=new int[100];
        Scanner input=new Scanner(System.in);
        int n=input.nextInt();
        for(int i=0;i<n;i++) {
            a[i]=input.nextInt();
        }
        for(int i=1;i<n;i++) {
            if(a[i]+a[i-1]>a[i]) {
                a[i]=a[i]+a[i-1];
            }
            
        }
        int ans=-10000;
        for(int i=0;i<n;i++) {
            ans=Math.max(ans, a[i]);
        }
        
        System.out.println(ans);
    }

}

猜你喜欢

转载自www.cnblogs.com/wyppaa/p/12383402.html