题目如下
数据范围
本题的意思是找几个数删除得到一个非递减的数列,
也可以反过来想其实就是找最长的递增子序列。
这里令f(i)为以i为结尾的子序列的长度。
则f(i) = max(f(j) + 1) 其中0 <= j < i
通过代码
cpp
class Solution {
public:
int minimumOperations(vector<int>& nums) {
int n = nums.size();
vector<int> dp(n,1);
dp[0] = 1;
int max1 = 1;
for(int i = 1;i < n;i++){
for(int j = 0;j < i;j++){
if(nums[j] <= nums[i]){
dp[i] = max(dp[i],dp[j] + 1);
}
}
max1 = max(max1,dp[i]);
}
return n - max1;
}
};
