添加 0416.分割等和子集 Rust版本

添加 0416.分割等和子集 Rust版本
This commit is contained in:
cezarbbb
2022-08-09 19:20:23 +08:00
parent 87f5da4746
commit 0012d62724

View File

@ -417,7 +417,32 @@ var canPartition = function(nums) {
``` ```
### Rust
```Rust
impl Solution {
fn max(a: usize, b: usize) -> usize {
if a > b { a } else { b }
}
pub fn can_partition(nums: Vec<i32>) -> bool {
let nums = nums.iter().map(|x| *x as usize).collect::<Vec<usize>>();
let mut sum = 0;
let mut dp: Vec<usize> = vec![0; 10001];
for i in 0..nums.len() {
sum += nums[i];
}
if sum % 2 == 1 { return false; }
let target = sum / 2;
for i in 0..nums.len() {
for j in (nums[i]..=target).rev() {
dp[j] = Self::max(dp[j], dp[j - nums[i]] + nums[i]);
}
}
if dp[target] == target { return true; }
false
}
}
```
### C: ### C: