Update 1005.K次取反后最大化的数组和.md

This commit is contained in:
jianghongcheng
2023-06-01 00:45:16 -05:00
committed by GitHub
parent d65f7a32da
commit 440bddb44b

View File

@ -155,17 +155,23 @@ class Solution {
```
### Python
贪心
```python
class Solution:
def largestSumAfterKNegations(self, A: List[int], K: int) -> int:
A = sorted(A, key=abs, reverse=True) # 将A按绝对值从大到小排列
for i in range(len(A)):
if K > 0 and A[i] < 0:
A.sort(key=lambda x: abs(x), reverse=True) # 第一步按照绝对值降序排序数组A
for i in range(len(A)): # 第二步执行K次取反操作
if A[i] < 0 and K > 0:
A[i] *= -1
K -= 1
if K > 0:
A[-1] *= (-1)**K #取A最后一个数只需要写-1
return sum(A)
if K % 2 == 1: # 第三步如果K还有剩余次数将绝对值最小的元素取反
A[-1] *= -1
result = sum(A) # 第四步计算数组A的元素和
return result
```
### Go