mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
Update 1005.K次取反后最大化的数组和.md
This commit is contained in:
@ -155,17 +155,23 @@ class Solution {
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Python
|
### Python
|
||||||
|
贪心
|
||||||
```python
|
```python
|
||||||
class Solution:
|
class Solution:
|
||||||
def largestSumAfterKNegations(self, A: List[int], K: int) -> int:
|
def largestSumAfterKNegations(self, A: List[int], K: int) -> int:
|
||||||
A = sorted(A, key=abs, reverse=True) # 将A按绝对值从大到小排列
|
A.sort(key=lambda x: abs(x), reverse=True) # 第一步:按照绝对值降序排序数组A
|
||||||
for i in range(len(A)):
|
|
||||||
if K > 0 and A[i] < 0:
|
for i in range(len(A)): # 第二步:执行K次取反操作
|
||||||
|
if A[i] < 0 and K > 0:
|
||||||
A[i] *= -1
|
A[i] *= -1
|
||||||
K -= 1
|
K -= 1
|
||||||
if K > 0:
|
|
||||||
A[-1] *= (-1)**K #取A最后一个数只需要写-1
|
if K % 2 == 1: # 第三步:如果K还有剩余次数,将绝对值最小的元素取反
|
||||||
return sum(A)
|
A[-1] *= -1
|
||||||
|
|
||||||
|
result = sum(A) # 第四步:计算数组A的元素和
|
||||||
|
return result
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Go
|
### Go
|
||||||
|
Reference in New Issue
Block a user