mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +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:
|
||||||
|
|
||||||
```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">
|
||||||
|
Reference in New Issue
Block a user