2024/9/25 Hot100 dp 昨日未完成的dp
This commit is contained in:
parent
9593c2606b
commit
89c197b9eb
|
@ -2,7 +2,9 @@ package com.cool.hot100.dp;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created with IntelliJ IDEA.
|
* Created with IntelliJ IDEA.
|
||||||
|
@ -63,4 +65,24 @@ public class Num279 {
|
||||||
return memory[i][j] = Math.min(dfs(i - 1, j), dfs(i, j - i * i) + 1);
|
return memory[i][j] = Math.min(dfs(i - 1, j), dfs(i, j - i * i) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 可以类比成为完全背包的零钱问题,把n之前的平方数当作一个个硬币,n是当前有的零钱,则可套用一样的逻辑
|
||||||
|
* @param n
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public int numSquares2(int n) {
|
||||||
|
int[] dp = new int[n + 1];
|
||||||
|
// 初始化 dp 数组
|
||||||
|
Arrays.fill(dp, Integer.MAX_VALUE);
|
||||||
|
dp[0] = 0;
|
||||||
|
for (int i = 1; i * i <= n; i++) {
|
||||||
|
for (int j = i * i; j <= n; j++) {
|
||||||
|
dp[j] = Math.min(dp[j], dp[j - i * i] + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dp[n];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue