From 50d497a834658168e616c7611438b622bdf58fad Mon Sep 17 00:00:00 2001 From: cezarbbb <105843128+cezarbbb@users.noreply.github.com> Date: Fri, 29 Jul 2022 18:49:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=201005.K=E6=AC=A1=E5=8F=96?= =?UTF-8?q?=E5=8F=8D=E5=90=8E=E6=9C=80=E5=A4=A7=E5=8C=96=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E7=BB=84=E5=92=8C=20Rust=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加 1005.K次取反后最大化的数组和 Rust版本 --- ...1005.K次取反后最大化的数组和.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) 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