classSolution{public:intminimumOperations(vector<int>&nums){// dp[i] := longest non-decreasing subsequence so far with nums in [1..i]vector<int>dp(4);for(constintnum:nums){++dp[num];dp[2]=max(dp[2],dp[1]);dp[3]=max(dp[3],dp[2]);}returnnums.size()-dp[3];}};
1 2 3 4 5 6 7 8 91011121314
classSolution{publicintminimumOperations(List<Integer>nums){// dp[i] := longest non-decreasing subsequence so far with nums in [1..i]int[]dp=newint[4];for(finalintnum:nums){++dp[num];dp[2]=Math.max(dp[2],dp[1]);dp[3]=Math.max(dp[3],dp[2]);}returnnums.size()-dp[3];}}
1 2 3 4 5 6 7 8 91011
classSolution:defminimumOperations(self,nums:List[int])->int:# dp[i] := longest non-decreasing subsequence so far with nums in [1..i]dp=[0]*4fornuminnums:dp[num]+=1# Append num to the sequence so far.dp[2]=max(dp[2],dp[1])dp[3]=max(dp[3],dp[2])returnlen(nums)-dp[3]