題目描述:
輸入乙個整型陣列,陣列裡有正數也有負數。
陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。
求所有子陣列的和的最大值。要求時間複雜度為o(n)。
例如輸入的陣列為1, -2, 3, 10, -4, 7, 2, -5,和最大的子陣列為3, 10, -4, 7, 2,
因此輸出為該子陣列的和18。
子問題為以當前元素結尾的序列最大和
//遞迴方法:任何遞推公式都能轉化為遞迴.
public int maxsum(int data,int n)
//自頂向下記憶化方法
//用乙個陣列存放計算的值;
public int b=new int;
public int maxsum1(int data,int n)
if(b[n-1]==-100)//用陣列記憶化的方法!!!!!!
if(b[n-1]<=0)
else
return b[n];
}
//dp_自底向上的方法;index存放最大和子串行的首末下標。
public void maxsum_dp(int data,int n,int index)
}index[0]=start;
index[1]=end;
}
連續子串行最大和
這道題目使用最大和問題的分治演算法 package com.divide.cc author sunnyboy runtime is o nlogn public class sumsequence int maxsum maxsubsequencesum a system.out.println ...
動態規劃 連續子陣列的最大和
使用動態規劃 f i 以array i 為末尾元素的子陣列的和的最大值,子陣列的元素的相對位置不變 f i max f i 1 array i array i res 所有子陣列的和的最大值 res max res,f i 如陣列 6,3,2,7,15,1,2,2 初始狀態 f 0 6 res 6 ...
動態規劃搞最大和連續子陣列
給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。剛看到這個題時,作為小白第一反應就是找到每乙個子陣列的和比較,那樣的話,就是三個for迴圈,...