mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
Merge pull request #2111 from fwqaaq/patch-29
Update 0279.完全平方数.md about Rust
This commit is contained in:
@ -356,6 +356,7 @@ var numSquares2 = function(n) {
|
||||
TypeScript:
|
||||
|
||||
```typescript
|
||||
// 先遍历物品
|
||||
function numSquares(n: number): number {
|
||||
const goodsNum: number = Math.floor(Math.sqrt(n));
|
||||
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">
|
||||
|
Reference in New Issue
Block a user