1005.Maximize Sum Of Array After K Negations(K 次取反后最大化的数组和)

  • Description
      • Difficulty: easy
    • Example 1:
    • Example 2:
    • Example 3:
    • Note:
  • 分析
  • 参考代码

Description

Given an array A of integers, we must modify the array in the following way: we choose an i and replace A[i] with -A[i], and we repeat this process K times in total. (We may choose the same index i multiple times.)

Return the largest possible sum of the array after modifying it in this way.


给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。)

以这种方式修改数组后,返回数组可能的最大和。

题目链接:https://leetcode.com/problems/maximize-sum-of-array-after-k-negations/

个人主页:http://redtongue.cn or https://redtongue.github.io/

Difficulty: easy

Example 1:

Input: A = [4,2,3], K = 1
Output: 5
Explanation: Choose indices (1,) and A becomes [4,-2,3].

Example 2:

Input: A = [3,-1,0,2], K = 3
Output: 6
Explanation: Choose indices (1, 2, 2) and A becomes [3,1,0,2].

Example 3:

Input: A = [2,-3,-1,5,-4], K = 2
Output: 13
Explanation: Choose indices (1, 4) and A becomes [2,3,-1,5,4].

Note:

  • 1 <= A.length <= 10000
  • 1 <= K <= 10000
  • -100 <= A[i] <= 100

分析

  • 翻转,应尽可能的翻转负数,同时翻转两次是可以抵消的,故分为如下三种情况;
  • 1、K小于负数的个数,翻转最小的K个负数;
  • 2、K大于负数的个数,且K-负数的个数等于偶数,翻转所有负数;
  • 3、K大于负数的个数,且K-负数的个数等于奇数,翻转所有负数;
  • 对于1,2返回翻转之后数组的和,对于3,返回翻转之后数组的和减去数组中最小数字的两倍。

参考代码

class Solution(object):
def largestSumAfterKNegations(self, A, K):A.sort()judge=Truefor i in range(K):if(A[i]<0):A[i]=-A[i]else:if((K-i)%2==0):judge=Trueelse:judge=Falsebreakif(judge):return sum(A)else:return sum(A)-2*min(A)

LeetCode1005.Maximize Sum Of Array After K Negations(K 次取反后最大化的数组和)相关推荐

  1. 贪心热门问题2:K 次取反后最大化的数组和

    我们说贪心算法很多解题思路是我们先看出来了,然后只是用代码实现而已,没有固定的套路.但是面试常考的贪心算法题目是非常有限的,因此我们的应对之道就是将常见的贪心题目都做一遍. 这个题就很典型: Leet ...

  2. 力扣贪心算法专题(一)455.分发饼干 376. 摆动序列 53. 最大子序和 122.买卖股票的最佳时机II 1005.K次取反后最大化的数组和 思路及C++实现 贪心算法 动态规划

    文章目录 贪心算法 455.分发饼干 思路 步骤 代码 376. 摆动序列 贪心算法 思路 分析 代码 动态规划 思路 步骤 代码 53. 最大子序和 暴力解法 双层for循环 贪心算法 思路 分析 ...

  3. 数组索引必须为正整数或逻辑值是什么意思_贪心算法:K次取反后最大化的数组和...

    ❝ 很多录友都反馈昨天的题目:贪心算法:跳跃游戏II 很难,这样我就放心了,哈哈,因为我刚刚讲解贪心的时候一些录友会建议我:贪心没有必要单独讲,直接讲动规就可以了.应该不少同学都会感觉就贪心嘛,有啥难 ...

  4. postgresql 遍历字符串数组_每日一道编程题(348):1005.K次取反后最大化的数组和...

    1005.K次取反后最大化的数组和 每日编程中遇到任何疑问.意见.建议请公众号留言或直接撩Q474356284(备注每日编程) 给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引  ...

  5. 力扣1005. K 次取反后最大化的数组和(自定义排序)

    1005. K 次取反后最大化的数组和 自定义根据绝对值排序 class Solution {public int largestSumAfterKNegations(int[] nums, int ...

  6. 【LeetCode】Maximize Sum Of Array After K Negations(K 次取反后最大化的数组和)

    这道题是LeetCode里的第1005道题. 题目描述: 给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次. ...

  7. 149. Leetcode 1005. K 次取反后最大化的数组和 (贪心算法-基础题目)

    那么本题的解题步骤为: 第一步:将数组按照绝对值大小从大到小排序,注意要按照绝对值的大小 第二步:从前向后遍历,遇到负数将其变为正数,同时K-- 第三步:如果K还大于0,那么反复转变数值最小的元素,将 ...

  8. leetcode 1005. K 次取反后最大化的数组和 思考分析

    题目 给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次.(我们可以多次选择同一个索引 i.) 以这种方式修改数 ...

  9. LeetCode 1005. K 次取反后最大化的数组和

    1. 题目 给定一个整数数组 A,我们只能用以下方法修改该数组: 我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次.(我们可以多次选择同一个索引 i.) 以这种 ...

最新文章

  1. 开启注册丨NeurlPS 2021论文预讲会议题全公开,4大主题和25场报告等你来
  2. 自动化办公 Python 操控 Word
  3. ssh连接虚拟机中mysql_用SSH连接Vmware redhat虚拟机
  4. SAP打补丁时需要注意的地方
  5. php composer内存不足,composer 安装插件提示内存不足等问题
  6. android sdk httppost,android6.0SDK 删除HttpClient的相关类的解决方法
  7. c语言标准库内存分配监控,C语言的本质(25)——C标准库之内存管理
  8. [转载] Python从字符串中删除字符
  9. processon画图软件
  10. 小米6显示服务器出错,小米6解锁BL显示未连接手机解决办法以及各种小技巧汇总......
  11. DoEvents 方法使用小结
  12. 计算机装系统找不到硬盘分区,如果U盘安装系统找不到硬盘分区,该怎么办?...
  13. pycharm库的下载和常见错误
  14. 视频图像色彩增强的主要方法与落地实践
  15. eating的中文意思_eating是什么意思_eating的翻译_音标_读音_用法_例句_爱词霸在线词典...
  16. Android AudioFocus机制小结
  17. 如何使用React Native构建新闻应用
  18. 【Database】数据库常见面试题【转】
  19. 使用html链接上传木马,通过XSS漏洞进行上传木马文件的过程
  20. 将单向链表按某值划分成左边小、中间相等、右边大的形式

热门文章

  1. 我用Cocos2d-x模拟《Love Live!学院偶像祭》的Live场景(五)
  2. 使用tesseract识别二维码
  3. Vue中的computed的用法
  4. 今日头条技术架构千字分析,
  5. TF卡只读数据三年后的变化
  6. 如果改计算机用户密码,修改电脑密码(忘记了电脑管理员密码)
  7. 网上购票系统故障 补票却要交费
  8. java字符串的比较(区分大小写、忽略大小写)
  9. echarts仪表盘,柱状图,折线图,趋势图
  10. AccessibilityService 进行蚂蚁森林能量收集 demo