下面LIS函数试图求出最长上升子序列的长度,横线处应该填入的是( )
int max(int a, int b) {
return (a > b) ? a : b;
}
int LIS(vector<int> & nums) {
int n = nums.size();
if (n == 0) return 0;
vector<int> dp(n, 1);
int maxLen = 1;
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++)
if (nums[j] < nums[i])
; // 在此处填入选项
maxLen = max(maxLen, dp[i]);
}
return maxLen;
}
- A.
dp[j] = max(dp[j] + 1, dp[i]) - B.
dp[j] = max(dp[j], dp[i] + 1) - C.
dp[i] = max(dp[i] + 1, dp[j]) - D.
dp[i] = max(dp[i], dp[j] + 1)