Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions CoinChange/step1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
```java
// DP
// Create list to keep the min number of coins needs foreach amount
// Time complexity: O(N * M) N: amount, M: number of coins
// Space complexity: O(N) memory for dp array
// Time spend: 03:45
class Solution {
public int coinChange(int[] coins, int amount) {
int[] dp = new int[amount + 1];

for (int i = 1; i <= amount; i++) {
dp[i] = 10001;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

意味のありそうなマジックナンバーは避けたほうがいいです。仕様は変わります。

dp はわりと意味のない変数名なので、もうちょっと意味があるものを付けたほうがいいでしょう。
https://discord.com/channels/1084280443945353267/1231966485610758196/1236231890038689844

for (int coin : coins) {
if (i - coin >= 0) {
dp[i] = Math.min(dp[i], dp[i - coin] + 1);
}
}
}

return dp[amount] == 10001 ? -1 : dp[amount];
}
}
```
24 changes: 24 additions & 0 deletions CoinChange/step2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
```java
// DP
// Time spend: 01:20
class Solution {
public int coinChange(int[] coins, int amount) {
int[] dp = new int[amount + 1];

for (int i = 1; i <= amount; i++) {
dp[i] = amount + 1;
for (int coin : coins) {
if (i - coin >= 0) {
dp[i] = Math.min(dp[i], dp[i - coin] + 1);
}
}
}

if (dp[amount] > amount) {
return -1;
}

return dp[amount];
}
}
```
70 changes: 70 additions & 0 deletions CoinChange/step3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
```java
// Time spend: 01:40
class Solution {
public int coinChange(int[] coins, int amount) {
int[] dp = new int[amount + 1];

for (int i = 1; i <= amount; i++) {
dp[i] = amount + 1;
for (int coin : coins) {
if (i - coin >= 0) {
dp[i] = Math.min(dp[i], dp[i - coin] + 1);
}
}
}

if (dp[amount] > amount) {
return -1;
}

return dp[amount];
}
}
```
```java
// Time spend: 01:25
class Solution {
public int coinChange(int[] coins, int amount) {
int[] dp = new int[amount + 1];

for (int i = 1; i <= amount; i++) {
dp[i] = amount + 1;
for (int coin : coins) {
if (i - coin >= 0) {
dp[i] = Math.min(dp[i], dp[i - coin] + 1);
}
}
}

if (dp[amount] > amount) {
return -1;
}

return dp[amount];
}
}
```

```java
// Time spend: 01:45
class Solution {
public int coinChange(int[] coins, int amount) {
int[] dp = new int[amount + 1];

for (int i = 1; i <= amount; i++) {
dp[i] = amount + 1;
for (int coin : coins) {
if (i - coin >= 0) {
dp[i] = Math.min(dp[i], dp[i - coin] + 1);
}
}
}

if (dp[amount] > amount) {
return -1;
}
Comment on lines +63 to +65
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

こう書ける理由をコメントに書いておく方が一応読み手に優しいですかね。無くてもいいかもですが。


return dp[amount];
}
}
```