diff --git a/problems/1005.K次取反后最大化的数组和.md b/problems/1005.K次取反后最大化的数组和.md index 8d721b9f..9d82bf9f 100644 --- a/problems/1005.K次取反后最大化的数组和.md +++ b/problems/1005.K次取反后最大化的数组和.md @@ -227,6 +227,31 @@ var largestSumAfterKNegations = function(nums, k) { }; ``` +### Rust + +```Rust +impl Solution { + pub fn largest_sum_after_k_negations(nums: Vec, 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; + k -= 1; + } + } + if k % 2 == 1 { nums[len - 1] *= -1; } + let mut result = 0; + for num in nums { + result += num; + } + result + } +} +``` + ### C ```c