mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
Merge pull request #1951 from fwqaaq/patch-15
Update 1005.K次取反后最大化的数组和.md 优化 rust
This commit is contained in:
@ -231,23 +231,18 @@ var largestSumAfterKNegations = function(nums, k) {
|
||||
|
||||
```Rust
|
||||
impl Solution {
|
||||
pub fn largest_sum_after_k_negations(nums: Vec<i32>, k: i32) -> i32 {
|
||||
let mut nums = nums;
|
||||
let mut k = k;
|
||||
let len = nums.len();
|
||||
nums.sort_by(|a, b| b.abs().cmp(&a.abs()));
|
||||
for i in 0..len {
|
||||
if nums[i] < 0 && k > 0 {
|
||||
nums[i] *= -1;
|
||||
pub fn largest_sum_after_k_negations(mut nums: Vec<i32>, mut k: i32) -> i32 {
|
||||
nums.sort_by_key(|b| std::cmp::Reverse(b.abs()));
|
||||
for v in nums.iter_mut() {
|
||||
if *v < 0 && k > 0 {
|
||||
*v *= -1;
|
||||
k -= 1;
|
||||
}
|
||||
}
|
||||
if k % 2 == 1 { nums[len - 1] *= -1; }
|
||||
let mut result = 0;
|
||||
for num in nums {
|
||||
result += num;
|
||||
if k % 2 == 1 {
|
||||
*nums.last_mut().unwrap() *= -1;
|
||||
}
|
||||
result
|
||||
nums.iter().sum()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
Reference in New Issue
Block a user