使用C++线性动态规划求解最长严格上升子序列(LIS)时,下列状态定义和转移方程正确的是?

up947973 单选题 共 个子题

给定长度为n的整数数组nums(下标从0到n-1),要求返回数组中最长的严格递增子序列的长度,子序列不要求元素在原数组中连续。

A

定义dp[i]表示以第i个元素结尾的最长上升子序列长度,转移方程为dp[i] = dp[j] + 1,其中0≤j<i且nums[j]<nums[i]

B

定义dp[i]表示以第i个元素结尾的最长上升子序列长度,转移方程为dp[i] = max(1, max{ dp[j]+1 | 0≤j<i 且 nums[j]<nums[i] })

C

定义dp[i]表示前i个元素的最长上升子序列长度,转移方程为当nums[i]>nums[i-1]时dp[i] = dp[i-1]+1,否则dp[i] = dp[i-1]

D

定义dp[i]表示前i个元素的最长上升子序列长度,转移方程为dp[i] = max(dp[i-1], dp[i-2]+1),其中nums[i]>nums[i-2]

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧