我想計算給定數組中最長的子序列的總和和長度t
。長度和最長增加的子序列的總和
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class so {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] s = br.readLine().split(" ");
br.close();
int[] t = new int[s.length];
for (int i = 0; i < s.length; i++) {
t[i] = Integer.parseInt(s[i]);
}
int length = 1;
int sum = t[0];
int maxSum = 0;
int maxLength = 0;
for (int i = 1; i < t.length; i++) {
for (; i < t.length && t[i - 1] <= t[i]; i++) {
length++;
sum += t[i];
System.out.print(t[i] + " ");
}
if (length > maxLength) {
maxLength = length;
maxSum = sum;
length = 1;
sum = 0;
i--;
}
}
System.out.println("sum is " + maxSum + " length is " + maxLength);
}
}
的數字1 1 7 3 2 0 0 4 5 5 6 2 1
我得到的輸出:
sum is 20 length is 6
但以相反的順序1 2 6 5 5 4 0 0 2 3 7 1 1
相同的數字,我得到的輸出:
sum is 17 length is 6
這是不是真的因爲我應該得到sum is 12 length is 5
。
有人能發現我的錯誤嗎?