1. 程式人生 > >給定一個數組,陣列中有正負數,求出所有字陣列中和值最大的值。

給定一個數組,陣列中有正負數,求出所有字陣列中和值最大的值。

/**當我們加上一個正數時,和會增加;當我們加上一個負數時,和會減少。如果當前得到的和是個負數,那麼這個和在接下來的累加中應該拋棄並重新清零,
	不然的話這個負數將會減少接下來的和
*/
	public static int maxSum(int[] a) {
		int sum = 0;  //指定的和
		int b = 0;    //控制
		for (int i = 0; i < a.length; i++) {
			if (b < 0) {
				b = a[i];
			} else {
				b += a[i];
			}
			if (sum < b) {
				sum = b;
			}
		}
		return sum;

	}