对动态规划有一点了解,但还是有点不理解下面的代码是为什么这样设计的,这样写的思路是什么
public int minimumOperations(List<Integer> nums) {
int[] dp = { Integer.MAX_VALUE, 0, 0, 0 };
for (int num : nums) {
for (int i = 1; i <= 3; i++) {
dp[i] = Math.min(dp[i - 1], dp[i] + (num == i ? 0 : 1));//dp[i]+(num==i?0:1)代表什么意思,有什么作用
}
}
return dp[3];
}