数组最大连续子序列和_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 数组最大连续子序列和

数组最大连续子序列和

 2011/12/6 9:23:39  xiaoming2xiaohong  http://xiaoming2xiaohong.iteye.com  我要评论(0)
  • 摘要:编程之美上的一个题:给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T的“序列和”。对于S的所有非空连续子序列T,求最大的序列和。思路*数组第一个元素A[0]和最大子数组和(a[i],...a[j])关系*1.当0=i=j时,a[0]就是最大子数组*2.当0=i<j时,最大子数组以a[0]开始*3.当0<i时,最大子数组跟a[0]没关系publicstaticintgetMax(int[]a){intl=a.length;intstart,all
  • 标签:数组

    编程之美上的一个题:给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T的“序列和”。对于S的所有非空连续子序列T,求最大的序列和。
思路

     * 数组第一个元素A[0]和最大子数组和(a[i],...a[j])关系
     * 1.当0=i=j时,a[0]就是最大子数组
     * 2.当0=i<j时,最大子数组以a[0]开始
     * 3.当0<i时,最大子数组跟a[0]没关系
 public static int getMax(int[] a) {
		int l = a.length;
		
		int start, all;
		start = all = a[l-1];
		
		for(int n = l-2; n >= 0; n--) {
			start = Math.max(a[n], start + a[n]);
			all = Math.max(all, start);
		}
		return all;
	}

 
发表评论
用户名: 匿名