求数组非连续子序列的最大和
生活随笔
收集整理的這篇文章主要介紹了
求数组非连续子序列的最大和
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述:
1.?一個(gè)整數(shù)數(shù)組L,如 L=[2,-3,3,50], 求L的一個(gè)非連續(xù)子序列,使其和最大,輸出最大子序列的和。這里非連續(xù)子序列的定義是,子序列中任意相鄰的兩個(gè)數(shù)在原序列里都不相鄰。例如,對(duì)于L=[2,-3,3,50], 輸出52(分析:很明顯,該列表最大非連續(xù)子序列為[2,50])。測(cè)試?yán)?/span>:L=[-2,-3,3,50,1,-1,100] 。
用動(dòng)態(tài)規(guī)劃的思想:
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);} }總結(jié)
以上是生活随笔為你收集整理的求数组非连续子序列的最大和的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Keras在mnist上的CNN实践,并
- 下一篇: 有向图的深度和广度遍历