首页 > 其他分享 >【每日一题】总行驶距离

【每日一题】总行驶距离

时间:2024-05-01 15:55:55浏览次数:25  
标签:10 mainTank int 每日 距离 行驶 燃料 additionalTank 主油箱

2739. 总行驶距离

卡车有两个油箱。给你两个整数,mainTank 表示主油箱中的燃料(以升为单位),additionalTank 表示副油箱中的燃料(以升为单位)。

该卡车每耗费 1 升燃料都可以行驶 10 km。每当主油箱使用了 5 升燃料时,如果副油箱至少有 1 升燃料,则会将 1 升燃料从副油箱转移到主油箱。

返回卡车可以行驶的最大距离。

注意:从副油箱向主油箱注入燃料不是连续行为。这一事件会在每消耗 5 升燃料时突然且立即发生。

示例 1:

输入:mainTank = 5, additionalTank = 10
输出:60
解释:
在用掉 5 升燃料后,主油箱中燃料还剩下 (5 - 5 + 1) = 1 升,行驶距离为 50km 。
在用掉剩下的 1 升燃料后,没有新的燃料注入到主油箱中,主油箱变为空。
总行驶距离为 60km 。

示例 2:

输入:mainTank = 1, additionalTank = 2
输出:10
解释:
在用掉 1 升燃料后,主油箱变为空。
总行驶距离为 10km 。

提示:

  • 1 <= mainTank, additionalTank <= 100

今天这个就还挺简单的,没啥技巧。

class Solution:
    def distanceTraveled(self, mainTank: int, additionalTank: int) -> int:
        ans = 0
        while mainTank >= 5:
            mainTank -= 5
            ans += 50
            if additionalTank > 0:
                additionalTank -= 1
                mainTank += 1
        return ans + mainTank * 10

第二种就是数学方法,思路参考e个空瓶换一瓶酒的b瓶换水问题。

放在本题就是 n=⌊(mainTank−5​)/4+1⌋=⌊(mainTank−1)/4​⌋,考虑到副油箱中燃料是有限的,取两者中最小值。

class Solution:
    def distanceTraveled(self, mainTank: int, additionalTank: int) -> int:
        return 10 * (mainTank + min((mainTank - 1) // 4, additionalTank))

标签:10,mainTank,int,每日,距离,行驶,燃料,additionalTank,主油箱
From: https://www.cnblogs.com/Aikoin/p/18169400

相关文章

  • opencv距离变换函数distanceTransform
    当图像内的各个子图没有连接时,可以直接使用形态学的腐蚀操作确定前景对象,但是如果图像内的子图连接在一起时,就很难确定前景对象了。此时,借助于距离变换函数cv2.distanceTransform()可以方便地将前景对象提取出来。距离变换函数cv2.distanceTransform()计算二值图像内任意点到最......
  • 【每日一题】感染二叉树需要的总时间
    2385.感染二叉树需要的总时间给你一棵二叉树的根节点root,二叉树中节点的值互不相同。另给你一个整数start。在第0分钟,感染将会从值为start的节点开始爆发。每分钟,如果节点满足以下全部条件,就会被感染:节点此前还没有感染。节点与一个已感染节点相邻。返回感染......
  • 【DP】编辑距离
    https://leetcode.cn/problems/edit-distance/description/?envType=study-plan-v2&envId=top-interview-150非常难的一种考虑方式【转载】dp[i][j]代表将word1的前i个字符转换为word2的前j个字符所需的最少步数。因此,根据题目给出的状态转移方程:当word1[i]==wor......
  • AtCoder Beginner Contest 351 E - Jump Distance Sum 切比雪夫距离与曼哈顿距离的转
    先说知识点。曼哈顿距离:横纵坐标距离差的绝对值的和,即|X1-X2|+|Y1-Y2|,离(0,0)点曼哈顿距离为1的点形成的是一个旋转45度后的正方形切比雪夫距离:横纵坐标距离差的绝对值的最大值,即max(|X1-X2|,|Y1-Y2|),离(0,0)点切比雪夫距离为1的点形成的是一个不旋转的正方形曼哈......
  • 后端每日一题 2:DNS 解析过程
    本文首发于公众号:腐烂的橘子本文梗概:DNS是什么,有什么作用一条DNS记录是什么样的DNS域名解析原理DNS服务器如何抵御攻击DNS是什么,有什么作用DNS(DomainNameSystem)是一种应用层协议,用于映射域名和ip地址。为什么要做映射呢?就像可以用身份证号来对应一个人,也可......
  • 后端每日一题 1:说一下三次握手
    本文首发于公众号:腐烂的橘子三次握手的流程第1步-初始连接请求SYN(Synchronize)服务端状态LISTEN,客户端向服务端发送一个SYN标志位的报文段(TCPsegment)这个报文段包含初始序列号x,以及最大报文段大小等字段客户端发送报文后,状态设置为SYN_SEND第2步-服务端回......
  • 【每日一题】爱生气的书店老板
    1052.爱生气的书店老板有一个书店老板,他的书店开了 n 分钟。每分钟都有一些顾客进入这家商店。给定一个长度为n的整数数组customers,其中customers[i]是在第i分钟开始时进入商店的顾客数量,所有这些顾客在第i分钟结束后离开。在某些时候,书店老板会生气。如果书店老......
  • 洛谷题单指南-动态规划2-P2758 编辑距离
    原题链接:https://www.luogu.com.cn/problem/P2758题意解读:对a字符串最少操作几次可以变成b字符串,看似无从下手,可以从内部递推关系着手。解题思路:设dp[i][j]表示将a字符串1~i变成b字符串1~j的最少操作次数,字符串下标从1开始。如何思考递推?可以从最后一步为切入点!最后一步对a[i]......
  • lora技术实现远距离通信的原因有哪些?
    LoRa技术传播距离远的原因主要可以归结为以下几点:首先,LoRa技术采用了扩频通信的原理。扩频通信是一种通过扩展信号带宽来降低单个符号的信号发送功率,从而提高信号抗干扰能力和增加信号传输距离的技术。在扩频通信中,原始信息数据的频谱被展宽,然后再进行传输。这一技术在LoRa中得到......
  • 戴森球计划:关于打帆星距离与建筑效率的精确计算
    来源贴吧:作者:wolray日期:2024-03-05结论放开头:由于俯仰角限制,打帆建筑效率(可打帆建筑面积与球面占比)的极限最大值为35.9%,星球轨道越远,太阳帆轨道半径越大,越接近该值,但变化微乎其微。最佳打帆策略:离恒星最近的潮汐锁定星,打最小轨道的帆。该结论与小马哥的文章网页链接完全一致。......