Merge pull request #2111 from fwqaaq/patch-29

Update 0279.完全平方数.md about Rust
This commit is contained in:
程序员Carl
2023-06-15 09:31:56 +08:00
committed by GitHub

View File

@ -356,6 +356,7 @@ var numSquares2 = function(n) {
TypeScript TypeScript
```typescript ```typescript
// 先遍历物品
function numSquares(n: number): number { function numSquares(n: number): number {
const goodsNum: number = Math.floor(Math.sqrt(n)); const goodsNum: number = Math.floor(Math.sqrt(n));
const dp: number[] = new Array(n + 1).fill(Infinity); const dp: number[] = new Array(n + 1).fill(Infinity);
@ -370,6 +371,64 @@ function numSquares(n: number): number {
}; };
``` ```
```rust
// 先遍历背包
function numSquares(n: number): number {
const dp = Array(n + 1).fill(Infinity)
dp[0] = 0;
for(let i = 1; i <= n; i++){
for(let j = 1; j * j <= i; j++){
dp[i] = Math.min(dp[i], dp[i -j * j] + 1)
}
}
return dp[n]
};
```
Rust:
```rust
// 先遍历背包
impl Solution {
pub fn num_squares(n: i32) -> i32 {
let n = n as usize;
let mut dp = vec![i32::MAX; n + 1];
dp[0] = 0;
for i in 0..=n {
let mut j = 1;
loop {
match j * j > i {
true => break,
false => dp[i] = dp[i].min(dp[i - j * j] + 1),
}
j += 1;
}
}
dp[n]
}
}
```
```rust
// 先遍历物品
impl Solution {
pub fn num_squares(n: i32) -> i32 {
let (n, mut goods) = (n as usize, 1);
let mut dp = vec![i32::MAX; n + 1];
dp[0] = 0;
loop {
if goods * goods > n {
break;
}
for j in goods * goods..=n {
dp[j] = dp[j].min(dp[j - goods * goods] + 1);
}
goods += 1;
}
dp[n]
}
}
```
<p align="center"> <p align="center">