代码随想录|Day28|贪心03|1005.K次取反后最大化的数组和、134.加油站、135.分发糖果

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

思路:

  1. 优先取反 绝对值最大的负数
  2. 如果没有负数,不断取反 绝对值最小的数,直到次数 K 耗尽

取反最小数有一个优化技巧:

  1. 如果 K 为偶数,则取反 K 次后,正负不变。
  2. 如果 K 为奇数,则取反 K 次后,正负变化。
class Solution:def largestSumAfterKNegations(self, nums: List[int], k: int) -> int:# 按照绝对值从大到小排序,确保优先反转绝对值最大的负数nums.sort(key=lambda x: -abs(x))for i in range(len(nums)):if nums[i] < 0 and k > 0:nums[i] *= -1k -= 1# 取反 绝对值最小值if k % 2 != 0:nums[-1] *= -1return sum(nums)

134.加油站

思路:我们可以计算 每个加油站的剩余量 rest[i] = gas[i] - cost[i]。从 i = 0,开始累加每个加油站的 rest[i],得到 curSum,如果 curSum < 0,则说明 [0, i] 中的所有加油站都不能作为起始点。 

 

class Solution:def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:curSum = 0totalSum = 0start = 0for i in range(len(gas)):curSum += gas[i] - cost[i]totalSum += gas[i] - cost[i]if curSum < 0:start = i + 1curSum = 0if totalSum < 0:return -1return start

135.分发糖果

  • 先确定右边评分大于左边的情况(也就是从前向后遍历)
  • 再确定左孩子大于右孩子的情况(从后向前遍历)
class Solution:def candy(self, ratings: List[int]) -> int:n = len(ratings)candys = [1] * nfor i in range(1, n):if ratings[i] > ratings[i - 1]:candys[i] = candys[i - 1] + 1for i in range(n -2, -1, -1):if ratings[i] > ratings[i + 1]:candys[i] = max(candys[i], candys[i + 1] + 1)return sum(candys)

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

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

相关文章

最大子序列(蓝桥杯,acwing,单调队列)

题目描述&#xff1a; 输入一个长度为 n 的整数序列&#xff0c;从中找出一段长度不超过 m 的连续子序列&#xff0c;使得子序列中所有数的和最大。 注意&#xff1a; 子序列的长度至少是 1。 输入格式&#xff1a; 第一行输入两个整数 n,m。 第二行输入 n 个数&#xff0…

【重磅消息】HANA Cloud QRC1/2024发布了

SAP重棒消息&#xff0c;HANA Cloud于3月25日正式发布2024第一个版本QRC1 。有时候&#xff0c;我爱把它跟PostgreSQL的小版本进行类比。因为PG基本上也是一个季度&#xff0c;发布一个版本&#xff0c;但那个是小版本。看起来有些类似。如果以年份开头&#xff0c;HANA Cloud也…

08-研发流程设计(上):如何设计Go项目的开发流程?

在Go 项目开发中&#xff0c;我们不仅要完成产品功能的开发&#xff0c;还要确保整个过程是高效的&#xff0c;代码是高质量的。 所以&#xff0c;Go 项目开发一定要设计一个合理的研发流程&#xff0c;来提高开发效率、减少软件维护成本。研发流程会因为项目、团队和开发模式…

Cisco ISR 1000 Series IOS XE Release IOSXE-17.13.1a ED

Cisco ISR 1000 Series IOS XE Release IOSXE-17.13.1a ED 思科 1000 系列集成多业务路由器系统软件 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-isr-1000/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 思科…

华为云亮相KubeCon EU 2024,以持续开源创新开启智能时代

3月21日&#xff0c;在巴黎举办的云原生顶级峰会KubeCon EU 2024上 &#xff0c;华为云首席架构师顾炯炯在“Cloud Native x AI&#xff1a;以持续开源创新开启智能时代”的主题演讲中指出&#xff0c;云原生和AI技术的融合&#xff0c;是推动产业深刻变革的关键所在。华为云将…

引领2024年的人工智能前景:趋势、预测和可能性(万字长文)

欢迎来到2024年人工智能和技术的可能性之旅。在这里&#xff0c;每一个预测都是一个潜在的窗口&#xff0c;未来充满了创新、变化&#xff0c;更重要的是&#xff0c;机会类似于20世纪50年代的工业革命。50年代见证了数字计算的兴起&#xff0c;重塑了行业和社会规范。今天&…

【生活】相机/图像各参数

文章目录 专业模式图片编辑-滤镜实体滤镜软件模拟滤镜 图片编辑-增强曝光亮度对比度饱和度自然饱和度色温色调高光阴影HSL色调分离褪色颗粒锐化晕影清晰度暗角 参考 专业模式 第一个参数WB是白平衡&#xff0c;调节色彩的。 第二个是对焦F&#xff0c;近距离拍摄物体&#xf…

DBeaver,一款实用的开源数据库管理软件

说起开源软件&#xff0c;其实大部分的体验和服务都是没有商业软件好的&#xff0c;毕竟养团队不是靠鼓励和奉献&#xff0c;咱们选择开源软件的主要原因还是免费&#xff0c;免费&#xff0c;免费。 由于公司限制安装商业软件&#xff0c;咱只能挑开源的替代&#xff0c;其中…

瑞_23种设计模式_中介者模式

文章目录 1 中介者模式&#xff08;Mediator Pattern&#xff09;1.1 介绍1.2 概述1.3 中介者模式的结构1.4 中介者模式的优缺点1.5 中介者模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 &#x1f64a; 前言&#xff1a;本文章为瑞_系列专栏之《2…

什么是多项式特征和交互项?

多项式特征和交互项是特征工程中常用的两种技术&#xff0c;用于扩展原始特征集以提高模型的表现。 多项式特征&#xff1a;多项式特征是指将原始特征的幂次方作为新的特征&#xff0c;以增加特征的非线性表达能力。例如&#xff0c;对于一个一元特征x &#xff0c;它的二次多…

拖拉拽做游戏?轻松打造个人掌机世界 | 开源日报 No.176

chrismaltby/gb-studio Stars: 7.8k License: MIT gb-studio 是一个快速、易于使用的拖放式复古游戏创建器&#xff0c;适用于您最喜爱的掌上游戏机系统。 该项目主要功能、关键特性和核心优势包括&#xff1a; 快速且易于使用使用 Electron 游戏构建应用程序和基于 C 的 GBD…

基于jsp+mysql+Spring的SpringBoot招聘网站项目

基于jspmysqlSpring的SpringBoot招聘网站项目&#xff08;完整源码sql&#xff09;主要实现了管理员登录,简历管理,问答管理,职位管理,用户管理,职位申请进度更新,查看简历 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀…