当前位置: 首页 > news >正文

Leetcoder Day29| 贪心算法part03

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

给定一个整数数组 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]

本题可以操作同一个索引多次,因此

如果当前数组元素均为正数,且K为奇数时,操作最小的那个,如果为偶数,则操作谁都无所谓。

如果当前数组元素存在负数,从绝对值最大的负数开始都取反为正数,若还有剩余,剩下的若为奇数,挑最小的来进行取反,若为偶数,则无所谓。

因此可以将数组先进行排序。

import java.util.Arrays;class Solution {public int largestSumAfterKNegations(int[] nums, int k) {Arrays.sort(nums);int res = 0;int i = 0; //记录第一个非负数索引// 将负数取反,直到k用完或遇到第一个非负数while (k > 0 && i < nums.length && nums[i] < 0) {nums[i]= -nums[i];k--;i++;}Arrays.sort(nums);// 如果k为奇数且仍有剩余,则将最小的非负数取反if (k % 2 == 1 ) {nums[0]=-nums[0];}// 加上剩余的数字for(i=0; i<nums.length;i++){res += nums[i];}return res;}
}

相关文章:

  • 【0267】pg内核初始化 process table(ProcGlobal、PROC_HDR、PGPROC)分析
  • C语言从入门到实战——预处理详解
  • axios封装
  • ChatGPT 正测试Android屏幕小组件;联想ThinkBook 推出透明笔记本电脑
  • Jmeter基础
  • SpringMVC的文件上传与下载
  • element el-table表格内容宽度自适应,不换行,不隐藏
  • NR 2-STEP RA Absolute Timing Advance Command MAC CE的应用场景
  • 连接未来:嵌入式系统在物联网时代的应用
  • 【每日前端面经】2023-02-27
  • go - 学习笔记 -2
  • 服务器防火墙的应用技术有哪些
  • Redis 16种妙用
  • 黑马程序员——接口测试——day03——Postman断言、关联、参数化
  • 智慧公厕让社区生活更美好
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • ES6语法详解(一)
  • export和import的用法总结
  • JavaScript创建对象的四种方式
  • Javascript弹出层-初探
  • JavaScript学习总结——原型
  • npx命令介绍
  • PHP面试之三:MySQL数据库
  • Rancher-k8s加速安装文档
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • SQLServer之创建数据库快照
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 对超线程几个不同角度的解释
  • 关于Flux,Vuex,Redux的思考
  • 基于Android乐音识别(2)
  • 今年的LC3大会没了?
  • 一个项目push到多个远程Git仓库
  • mysql面试题分组并合并列
  • Prometheus VS InfluxDB
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #1014 : Trie树
  • #pragma预处理命令
  • #QT(一种朴素的计算器实现方法)
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (pytorch进阶之路)扩散概率模型
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (算法)求1到1亿间的质数或素数
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)母版页和相对路径
  • (转)原始图像数据和PDF中的图像数据
  • (转载)Google Chrome调试JS
  • .NET CLR基本术语