leetcode 1005 Maximize Sum Of Array After K Negations

  • 1.题目描述
  • 2.解题思路
  • 3.Python代码

1.题目描述

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

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

示例 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]。

提示:
1 <= A.length <= 10000
1 <= K <= 10000
-100 <= A[i] <= 100

2.解题思路

排序后看小于零数字个数是否小于K,若小于,则全部变为正数后K取除以2的余数,是1的话把最小的数字变为负号即可;若大于,把最小的K个数变号即可。
其实可以使用O(N)的方法判断第K小的数字,时间复杂度更优,快排耗时已经O(NlogN)。

3.Python代码

class Solution(object):def largestSumAfterKNegations(self, A, K):""":type A: List[int]:type K: int:rtype: int"""while min(A)<0 and K>0:A[A.index(min(A))]=-min(A)K=K-1if K%2==1:A[A.index(min(A))]=-min(A)return sum(A)else:return sum(A)

leetcode 1005 Maximize Sum Of Array After K Negations相关推荐

  1. leetcode 1005. Maximize Sum Of Array After K Negations(python)

    描述 Given an array nums of integers, we must modify the array in the following way: we choose an i an ...

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

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

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

    1005.Maximize Sum Of Array After K Negations(K 次取反后最大化的数组和) Description Difficulty: easy Example 1: ...

  4. LeetCode.1005-K次取负数组和最大(Maximize Sum Of Array After K Negations)

    这是悦乐书的第376次更新,第403篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第237题(顺位题号是1005).给定一个整数数组A,我们必须按以下方式修改数组:我们选 ...

  5. 1005.E. Maximize Sum Of Array After K Negations

    一个数组每次选一个*(-1),K次后求最大sum. desc 思路: 1. 维护最小堆,either in place or not. 2. 细分析负数数量和K奇偶. K<=#负数:翻转最小的K ...

  6. leetcode 304. Range Sum Query 2D - Immutable |304. 二维区域和检索 - 矩阵不可变(二维前缀和问题)

    题目 https://leetcode.com/problems/range-sum-query-2d-immutable/ 题解 本题是 medium 难度,二维前缀和问题.相似题目有: Easy: ...

  7. LeetCode 167.Two Sum II 解题报告

    LeetCode 167.Two Sum II 解题报告 题目描述 Given an array of integers that is already sorted in ascending ord ...

  8. leetcode 1005 负负得正,整数就取绝对值最小的

    1005. K 次取反后最大化的数组和 难度简单246收藏分享切换为英文接收动态反馈 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换 ...

  9. [勇者闯LeetCode] 1. Two Sum

    [勇者闯LeetCode] 1. Two Sum Description Given an array of integers, return indices of the two numbers s ...

最新文章

  1. 数字三角形,最长上升子序列,背包模型 AcWing算法提高课 (详解)
  2. mysql校对集_mysql之字符集与校对集
  3. Linux的unlink
  4. html中input不可编辑状态,css如何实现input不可编辑
  5. 选择Vert.x的3个理由
  6. 14天学会安卓开发(附PDF文档和全部示例代码)
  7. 软件测试工资高还是运维高,IT行业的6大热门岗位,薪酬都有多高?
  8. [转载]LM算法的实现
  9. PLSQL Developer学习笔记
  10. OpenCV基本函数使用--Python
  11. SqlServer中char,varchar,nchar,nvarchar的区别
  12. 二级计算机选择题知识点资源,计算机省二级选择题.txt
  13. GitHub 热榜:文字识别神器,超轻量级中文 OCR!一个超级厉害的开源库
  14. 什么是编译、什么是连接。C++代码如何变成机器码,如何跨平台和嵌入式?嵌入式开发
  15. P13~P14 谋定而后动,知止而有得
  16. MTK Android 之MT6577驱动笔记
  17. 如何在php中显示170cm,身高 158cm,怎么穿才能像 170cm?
  18. 互联网地图栅格比例尺(3857,4326)
  19. 推式配货(Push)、拉式配货(Pull)和配送需求计划(DRP)的区别
  20. 8421码、5421码、2421码及余三码

热门文章

  1. GIS算法基础实验1高斯克吕格的正反算
  2. ios-手动导入字体库
  3. Web全栈~03.HTML5新特性
  4. 如何优雅升级 Kubernetes 集群的 Docker 和 Containerd 版本
  5. idea常用设置之如何设置新建类自动生成@Author---File Header的设置
  6. 全程复制粘贴,就是傻瓜式的操作,图文成片,一个视频收益252
  7. 百度年龄计算机在线,百度年龄计算器生日书app
  8. matlab图像处理关于细胞计数
  9. 图像分割算法:基于KNN的像素级分割算法
  10. 制作自定义Ubuntu ISO镜像