使用动态规划法求数组的最大子数组
从数组的第二个数据开始,如果加上上一个数据后比原数据大则加上,否则不变;依次推到最后一个数据。然后选出其中最大的数据。
代码如下
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); } }