求数组非连续子序列的最大和
生活随笔
收集整理的這篇文章主要介紹了
求数组非连续子序列的最大和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:
1.?一個整數數組L,如 L=[2,-3,3,50], 求L的一個非連續子序列,使其和最大,輸出最大子序列的和。這里非連續子序列的定義是,子序列中任意相鄰的兩個數在原序列里都不相鄰。例如,對于L=[2,-3,3,50], 輸出52(分析:很明顯,該列表最大非連續子序列為[2,50])。測試例子:L=[-2,-3,3,50,1,-1,100] 。
用動態規劃的思想:
public class MaxSubSum {public static int maxSubSum(int[] a) {a[1] = Math.max(a[1],a[0]);for (int i = 2; i < a.length; i++) {a[i]= Math.max(Math.max(a[i],a[i-1]),a[i-2]+a[i]);}return a[a.length-1];}public static void main(String[] args) {int [] a= {2,-3,3,50};int [] b= {-2,-3,3,50,1,-1,100};int result_a = maxSubSum(a);int result_b = maxSubSum(b);System.out.println(result_a);System.out.println(result_b);} }總結
以上是生活随笔為你收集整理的求数组非连续子序列的最大和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Keras在mnist上的CNN实践,并
- 下一篇: 有向图的深度和广度遍历