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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximize-sum-of-array-after-k-negations
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:int largestSumAfterKNegations(vector<int>& A, int K) {sort(A.begin(), A.end());//从负数开始,负的最多的int i, sum = 0, minN = INT_MAX, idx;for(i = 0; i < A.size(); ++i)if(abs(A[i]) < minN){minN = abs(A[i]); //绝对值最小的idx = i;}for(i = 0; K>0 && i < A.size(); ++i){if(A[i] < 0){A[i] = -A[i];K--;}}if(K%2 == 1)//k为奇数,对绝对值最小的取负A[idx] = -A[idx];for(i = 0; i < A.size(); ++i)sum += A[i];return sum;}
};

4 ms 8.5 MB

LeetCode 1005. K 次取反后最大化的数组和相关推荐

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

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

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

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

  3. 2022-5-25 Leetcode 1005.K次取反后最大化的数组和

    没有想到这种 k 大于数组长度的. class Solution {public:int largestSumAfterKNegations(vector<int>& nums, ...

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

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

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

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

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

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

  7. 1005. K 次取反后最大化的数组和(javascript)

    //绝对值从大到小排序,判断其是否为负数,把前面的负数反转//如果没有负数,且k大于0,把绝对值小的正数反转 var largestSumAfterKNegations = function(nums ...

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

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

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

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

最新文章

  1. 迅雷“星域”打通最后一公里重新定义CDN
  2. Joomla!网站扫描工具joomscan
  3. Android Looper Message MessageQueue Handler
  4. ES6~ES12——Array Includes、Object values、Object entries、Object fromEntries、flat、flatMap、空值合并运算符、可选链等
  5. 如何用html构建ios应用,使用HTML5构建iOS原生APP(2)
  6. EZchip将推全球首款100核64位ARM A-53芯片
  7. Log4j.xml配置日志按级别过滤并将指定级别的日志发送到ActiveMQ
  8. Win知识 - 程序是怎样跑起来的——系统调用和高级编程语言的移植性
  9. 【操作系统】 第二章 进程的描述与控制
  10. Aspose.Words for .NET
  11. sin的傅里叶变换公式_傅里叶变换的由来及复数下的傅里叶变换公式证明
  12. 基于成熟网管平台的网管软件开发模式
  13. Bluedroid 函数分析:BTA_GATTC_Open
  14. SFDC Lightning Performance Tuning
  15. 网易云音乐登录报错 status: 400, body: { code: -460, message: ‘网络太拥挤,请稍候再试!‘ } 解决
  16. 中国传媒大学GPA算法
  17. mysql查看表存不存在
  18. SpringBoot学习小结之Redis
  19. 从顶层设计聊公司治理
  20. 不适当的云安全 后果很严重

热门文章

  1. java 线程池 wait,Java 多线程 之 wait等待 线程实例
  2. linux 部署php svn,Linux服务器搭建svn环境方法详解
  3. misc类设备与蜂鸣器驱动
  4. angularjs的表单验证
  5. canvas小程序-快跑程序员
  6. [笔记]Go语言写文件几种方式性能对比
  7. [翻译]API Guides - Bound Services
  8. IBM T61 键盘没有反映。
  9. boost学习之boost::shared_ptr
  10. 苦练IoT应用开发,还能加速变现,这个机会别错过