您的位置:首页 > 其它

LeetCode "Coin Change"

2016-01-06 18:29 375 查看
1AC. Intuitive DP. But please note the if condition, there's a trick - we cannot build upon an invalid dp slot.

class Solution {
public:
int coinChange(vector<int>& coins, int amount) {
int n = coins.size();
if (!n) return -1;

vector<int> dp(amount + 1, INT_MAX);
dp[0] = 0;

for (int i = 1; i <= amount; i ++)
for (auto c: coins)
{
int prev = i - c;
if (i >= c && (prev?dp[prev]!=INT_MAX : true))
{
dp[i] = min(dp[i], dp[prev] + 1);
}
}

return (dp[amount] == INT_MAX) ? -1 : dp[amount];
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: