题目如下
数据范围
本题的意思是找几个数删除得到一个非递减的数列,
也可以反过来想其实就是找最长的递增子序列。
这里令f(i)为以i为结尾的子序列的长度。
则f(i) = max(f(j) + 1) 其中0 <= j < i
通过代码
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;}
};