更多精彩内容,请关注【力扣简单题】。
题目
难度:★★☆☆☆
类型:数组
给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。)
以这种方式修改数组后,返回数组可能的最大和。
提示
1 <= A.length <= 10000
1 <= K <= 10000
-100 <= A[i] <= 100
示例
示例 1
输入:A = [4,2,3], K = 1
输出:5
解释:选择索引 (1,) ,然后 A 变为 [4,-2,3]。
示例 2
输入:A = [3,-1,0,2], K = 3
输出:6
解释:选择索引 (1, 2, 2) ,然后 A 变为 [3,1,0,2]。
示例 3
输入:A = [2,-3,-1,5,-4], K = 2
输出:13
解释:选择索引 (1, 4) ,然后 A 变为 [2,3,-1,5,4]。
解答
使用贪心算法,每次将最小值翻转即可。
class Solution:
def largestSumAfterKNegations(self, A, K):
"""
:param A: List[int]
:param K: int
:return: int
"""
for i in range(K):
A.sort()
A[0] = -A[0]
return sum(A)
如有疑问或建议,欢迎评论区留言~