[力扣题解]1005. K 次取反后最大化的数组和

题目:1005. K 次取反后最大化的数组和

思路

贪心法;
用绝对值大小排序,自己写一个比较函数,

static bool compare(int a, int b)
{return abs(a) > abs(b);
}

注意这样写出来是降序排列;

2次贪心
(1)按照绝对值大小排序,排序之后比如:输入nums = [2,-3,-1,5,-4], k = 2,排序之后:nums = [5, -4, -3, 2, -1],再从绝对值最大的负数开始翻转(翻牌子( ̄▽ ̄)");
(2)在所有负数都翻转完毕之后,如果还有剩余翻转次数,那么就对绝对值最小的正数进行翻转。剩余次数为偶数,那么就结果刚好保持不变,如为奇数,结果相当于翻转一次;

代码

class Solution {// 比较绝对值大小
static bool compare(int a, int b)
{return abs(a) > abs(b);
}public:int largestSumAfterKNegations(vector<int>& nums, int k) {int i, times = k, sum = 0, size;// times : 能反转的次数sort(nums.begin(), nums.end(), compare);// 降序size = nums.size();cout << endl;for(i = 0; i < size; i++){if(nums[i] < 0 && times > 0){nums[i] = -nums[i];times--;}}if(times > 0){// 奇数if(times % 2 == 1){nums[size-1] = -nums[size-1];}}for(i = 0; i < nums.size(); i++){sum += nums[i];}return sum;}
};

贪心简单题用来培养分析过程,以免将来遇见难题不知道如何下手;

参考

代码随想录:1005.K次取反后最大化的数组和

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/10758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全学科知网普刊征稿中!即日提交,月内即可见刊!

在当前的学术环境下&#xff0c;论文发表的压力日益增大。当您需要评职称、申请学位、结项课题或完成其他有期限的学术要求时&#xff0c;快速发表普刊能够确保您及时满足这些需求&#xff0c;提升您的职业竞争力&#xff0c;为您的职业发展需求打下坚实基础。 我处普刊现积极…

我的全新官网

科技语者-探索未来的语言和沟通 (chgskj.cn) 另外我还开放了一个网站科技语者-介绍页 (null.fit)

无锡哲讯在SAP实施方面的有哪些优势?

无锡哲讯在SAP实施领域展现出的专业性、技术实力和客户服务等方面的优势&#xff0c;使其成为众多企业在SAP相关项目中的优选合作伙伴。下面就从行业经验、解决方案、技术实力、服务范围和客户口碑几大方面介绍无锡哲讯在SAP实施领域的优势&#xff1a; 丰富的行业经验&#xf…

iOS 音量键拍照(延时拍照)

写在前面 下面有两种方法可以实现&#xff0c;一种简单&#xff0c;一种复杂&#xff0c;简单的方法曾经遇到过无法实现的问题&#xff0c;目前不确定为什么。 这是复杂实现的demo&#xff0c;使用很简单&#xff0c;就不做文字解释了 一. 思路 首先需要监听音量键的点击&a…

Java反射(含静态代理模式、动态代理模式、类加载器以及JavaBean相关内容)

目录 1、什么是反射 2、Class类 3、通过Class类取得类信息/调用属性或方法 4、静态代理和动态代理 5.类加载器原理分析 6、JavaBean 1、什么是反射 Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息&#xff0c;从而操作类或对象的属性和方法。本质是JVM得…

速盾:高防服务器和高防cdn的区别

高防服务器和高防CDN是两种常用的网络安全解决方案&#xff0c;用于保护网站免受恶意攻击和DDoS攻击的影响。虽然它们都有类似的目标&#xff0c;但在保护机制、性能表现和适用场景等方面有一些区别。 首先&#xff0c;高防服务器是一种物理硬件设备&#xff0c;通常是一台具备…

java基础之面向对象的思想

一、面向对象和面向过程的编程思想对比 面向过程&#xff1a;是一种以过程为中心的编程思想&#xff0c;实现功能的每一步&#xff0c;都是自己实现的&#xff08;自己干活&#xff09;。 面向对象&#xff1a;是一种以对象为中心的编程思想&#xff0c;通过指挥对象实现具体的…

智慧生活:AI工具如何改变我们的工作与生活

文章目录 &#x1f4d1;前言一、常用AI工具&#xff1a;便利与高效的结合1.1 语音助手1.2 智能推荐系统1.3 自然语言处理工具 二、创新AI应用&#xff1a;不断突破与发展2.1 医疗诊断AI2.2 智能家居2.3 无人驾驶技术 三、AI工具在人们生活中的应用和影响3.1 生活方式的变化3.2 …

docker和docker-compose常用指令

在 Docker 中&#xff0c;有许多常用的命令来管理容器、镜像、网络和卷。这些命令对于修复错误、更新、重建和重新运行应用尤为重要。下面是一些最常用的 Docker 命令和它们的基本用途&#xff1a; ### 1. 容器管理 - **启动容器**: bash docker start <容器ID或名称&g…

Stream流入门和创建方式

Java 8引入了Stream API&#xff0c;它提供了一种新的数据处理方式&#xff0c;使得集合和数组的处理更加灵活、高效。Stream API不是直接操作数据结构中的元素&#xff0c;而是对数据源创建一个数据流&#xff0c;通过声明式的方式对数据进行操作&#xff0c;如过滤、映射、排…

搭建本地yum仓库

步骤 找个地方存你的rpm包 #我创建了一个rpm文件夹存放我的rpm包 makdir -p /opt/repo/rpmcreaterepo 这个很重要&#xff0c;一定要安装 # 我的能连外网&#xff0c;所以直接yum安装&#xff0c;你的自己想办法 yum install createrepo -y创建repodata 安装了createrepo后…

在lua中一般使用dofile或require来执行程序块

在Lua中&#xff0c;通常可以使用dofile函数或require函数来执行程序块。 dofile函数用于执行指定文件中的Lua代码。它会执行文件中的代码并返回该代码块的返回值&#xff08;如果有的话&#xff09;。示例用法如下&#xff1a; dofile("myfile.lua")require函数也用…

【C++】引用传递 常量引用

在C中&#xff0c;引用传递和常量引用是两个常用的概念&#xff0c;主要用于函数参数传递。它们提供了对变量或对象更有效率和更安全的访问方式。 引用传递&#xff08;Pass by Reference&#xff09; 引用传递意味着当你将变量作为参数传递给函数时&#xff0c;你实际上是传…

《快快网络2024年DDoS攻击趋势白皮书》网络安全的新挑战与应对之道

随着信息技术的飞速发展&#xff0c;网络空间已成为国家、企业乃至个人生存与发展的重要基础。然而&#xff0c;伴随着网络空间的日益扩大&#xff0c;网络安全问题也日益凸显&#xff0c;其中DDoS攻击便是其中最为严重且难以防范的一种。近日&#xff0c;快快网络发布的《快快…

SOA构架介绍

1.SOA定义 SOA面向服务的架构是一种计算机环境设计、开发、部署和管理离散模型的方法&#xff0c;SOA中所有的功能都被定义成立独立的服务&#xff0c;所有的服务通过总线&#xff08;ESB)或者流程管理连接。这种松耦合的结构使得服务器在交互的过程中无需考虑双方内部细节&am…

MATLAB--Number Manipulation II

例1.Problem 2193. Mysterious digits operation (easy) What is this digit operation? 0 -> 01 -> 9121 -> 944 -> 615 -> 51243 -> 7... 这是一个数字运算。具体规则如下&#xff1a; 0 变为 01 变为 9121 变为 944 变为 615 变为 51243 变为…

RocketMQ(一)

作用 1. 限流削峰 2. 异步解耦 组成 Producer&#xff1a;消息的发送者&#xff0c;生产者&#xff1b;举例&#xff1a;发件人 Consumer&#xff1a;消息接收者&#xff0c;消费者&#xff1b;举例&#xff1a;收件人 Broker&#xff1a;暂存和传输消息的通道&#xff1…

矩阵稀疏扫描 - 矩阵

系列文章目录 文章目录 系列文章目录前言一、题目描述二、输入描述三、输出描述四、Java代码五、测试用例提示 前言 本人最近再练习算法&#xff0c;所以会发布一些解题思路&#xff0c;希望大家多指教 一、题目描述 如果矩阵中的许多系数都为零&#xff0c;那么该矩阵就是稀…

Rust编程语言的特点及其适合做什么

Rust编程语言的特点 Rust是一门系统级编程语言&#xff0c;它有如下特点。 1. 类C的语言语法 Rust的具体语法和C/C类似&#xff0c;都是由花括号限定代码块&#xff0c;还有一样的控制流关键字&#xff0c;例如if、else、while和for。然而&#xff0c;也并非所有的C或者C关键…

Scratch四级:第07讲 编程数学02

第07讲 编程数学02 教练&#xff1a;老马的程序人生 微信&#xff1a;ProgrammingAssistant 博客&#xff1a;https://lsgogroup.blog.csdn.net/ 讲课目录 常考的数学问题项目制作&#xff1a;“求最大公约数”项目制作&#xff1a;“求最小公倍数”项目制作&#xff1a;“早餐…