這是我自己的想法啦 可以參考看看
只有一排的話,那每個位置當終點的最佳答案 就是到這個點的最大連續和
因為可以從左、右走過來 所以要做兩次最大連續和
我是開 dp[10000][3]
dp[i][1]用來記錄從左邊走過來,i為終點 的最大連續和
dp[i][2]用來記錄從右邊走過來,i為終點 的最大連續和
然後 dp[i][0]=max(dp[i][1],dp[i][2]) 用來記錄這個點當終點的最大連續和
接下來進入到 1~m-1 層
我將每一層輸入的數字存在 ary[10000] 裡面
可以知道 以某一點當作起點的話,那他的權重就直接等於 dp[i][0]+ary[i]
一樣左右都要做一次
dp[i][1]=max(dp[i-1][1]+ary[i],dp[i][0]+ary[i]) 前面的部分是指從左邊走過來的最大值 後面是指從上面直接走下來的值
同理右邊也是一樣 dp[i][2]=max(dp[i+1][2]+ary[i],dp[i+1][0]+ary[i])
然後再取max
//其實第一層不用特別處理~ 只是我分開來講 或許會比較好理解?