// 设dp[i][0]表示第i位处理结束,且
// 当前整体处于第1段的最优解,同理dp[i][1]表示处于第2段的最优解,dp[i][2]表示处于第3段的最优解。
class Solution {
public:
int minimumOperations(string leaves) {
int n = leaves.size();
int dp[100100][3];
memset(dp,0x3f,sizeof(dp));
dp[0][0] = (leaves[0]!='r');
for(int i=1;i<n;i++){
dp[i][0] = dp[i-1][0]+(leaves[i]!='r');
dp[i][1] = min(dp[i-1][0],dp[i-1][1])+(leaves[i]!='y');
dp[i][2] = min(dp[i-1][1],dp[i-1][2])+(leaves[i]!='r');
}
return dp[n-1][2];
}
};
LeetCode LCP 19. 秋叶收藏集 (DP——一维状态机)
猜你喜欢
转载自blog.csdn.net/qq_44846324/article/details/108906662
今日推荐
周排行