#4356. [GESP202506 八级 C++] 第 13 题

[GESP202506 八级 C++] 第 13 题

下面 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;
}

{{ select(1) }}

  • dp[j] = max(dp[j] + 1, dp[i])
  • dp[j] = max(dp[j], dp[i] + 1)
  • dp[i] = max(dp[i] + 1, dp[j])
  • dp[i] = max(dp[i], dp[j] + 1)