mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
Update 1005.K次取反后最大化的数组和.md
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user