Skip to content

Commit 5323902

Browse files
raof01azl397985856
authored andcommitted
feat: problem azl397985856#322 add C++ implementation (azl397985856#177)
1 parent c72a29e commit 5323902

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

Diff for: problems/322.coin-change.md

+23-1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ eg: 对于 [1,2,5] 组成 11 块
7272
- 对于每一个 dp[i] 我们都选择遍历一遍 coin, 不断更新 dp[i]
7373

7474
## 代码
75+
76+
* 语言支持:JS,C++
77+
78+
JavaScript Code:
7579
```js
7680
/*
7781
* @lc app=leetcode id=322 lang=javascript
@@ -134,7 +138,25 @@ var coinChange = function(coins, amount) {
134138

135139
};
136140
```
137-
141+
C++ Code:
142+
> C++中采用INT_MAX,因此判断时需要加上`dp[a - coin] < INT_MAX`以防止溢出
143+
```C++
144+
class Solution {
145+
public:
146+
int coinChange(vector<int>& coins, int amount) {
147+
auto dp = vector<int>(amount + 1, INT_MAX);
148+
dp[0] = 0;
149+
for (auto a = 1; a <= amount; ++a) {
150+
for (const auto & coin : coins) {
151+
if (a >= coin && dp[a - coin] < INT_MAX) {
152+
dp[a] = min(dp[a], dp[a-coin] + 1);
153+
}
154+
}
155+
}
156+
return dp[amount] == INT_MAX ? -1 : dp[amount];
157+
}
158+
};
159+
```
138160
## 扩展
139161
140162
这是一道很简单描述的题目, 因此很多时候会被用到大公司的电面中。

0 commit comments

Comments
 (0)