色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java求長度遞增序列的和

錢多多1年前8瀏覽0評論

Java 是一門廣受歡迎的編程語言,可以用它來處理許多計算問題,比如求長度遞增序列的和。下面我們將介紹一個簡單的算法,來實現(xiàn)這個過程。

public static int increasingSequenceSum(int[] arr) {
int[] dp = new int[arr.length];
dp[0] = arr[0];
int len = 1, ans = dp[0];
for (int i = 1; i< arr.length; i++) {
if (arr[i] >dp[len - 1]) {
dp[len] = arr[i];
len++;
} else {
int j = Arrays.binarySearch(dp, 0, len, arr[i]);
if (j< 0) {
j = -(j + 1);
}
dp[j] = arr[i];
}
ans += dp[len - 1];
}
return ans;
}

這段代碼使用了動態(tài)規(guī)劃的思想,dp 數(shù)組保存的是以當(dāng)前位置為結(jié)尾時,最長長度的遞增序列的結(jié)尾元素值。如果當(dāng)前元素大于 dp 數(shù)組的最大值,說明可以加入當(dāng)前元素,長度加 1。否則,在 dp 數(shù)組上進(jìn)行二分查找,找到第一個大于等于當(dāng)前元素的位置,將其替換為當(dāng)前元素。

在每次更新 dp 數(shù)組時,累加當(dāng)前的結(jié)尾元素的值,就能得到最終的遞增序列的和。

希望通過這個例子能夠幫助大家學(xué)習(xí)和掌握 Java 編程,讓編程變得更加容易和快樂!