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

Leetcode 3296. Minimum Number of Seconds to Make Mountain Height Zero

  • Leetcode 3296. Minimum Number of Seconds to Make Mountain Height Zero
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3296. Minimum Number of Seconds to Make Mountain Height Zero

1. 解题思路

这一题的思路的话我们采用的是一个二分法的思路,找到一个最大的时间 T T T,使得在这个时间 T T T之内所有workers移除的山的高度的总和不低于给定值 H H H

而对于在某个给定的时间 T T T下,工人 i i i能够移除的山的高度 h i h_i hi满足如下关系式:
t i × h i ( h i + 1 ) 2 < = T t_i \times \frac{h_i(h_i+1)}{2} <= T ti×2hi(hi+1)<=T

即有:
h i < = − 1 + 1 + 8 T t i 2 h_i <= \frac{-1+\sqrt{1+\frac{8T}{t_i}}}{2} hi<=21+1+ti8T

因此,我们用二分法查找一下临界值即可。

2. 代码实现

给出python代码实现如下:

class Solution:def minNumberOfSeconds(self, mountainHeight: int, workerTimes: List[int]) -> int:n = len(workerTimes)r = math.ceil(mountainHeight / n)def is_possible(t):h = 0for wt in workerTimes:h += int((math.sqrt(8*t/wt + 1) - 1) / 2)return h >= mountainHeighti, j = 0, max(workerTimes) * r * (r+1) // 2while j-i > 1:t = (i+j) // 2if is_possible(t):j = telse:i = treturn j

提交代码评测得到:耗时277ms,占用内存17.8MB。

http://www.lryc.cn/news/444101.html

相关文章:

  • 计算机毕业设计之:基于深度学习的路面检测系统(源码+部署文档+讲解)
  • 测试面试题:接口自动化测试流程?
  • Golang面试题
  • 《飞机大战游戏》实训项目(Java GUI实现)(设计模式)(简易)
  • 计算机毕业设计 基于 Hadoop平台的岗位推荐系统 SpringBoot+Vue 前后端分离 附源码 讲解 文档
  • 【数据结构与算法】LeetCode:二分查找
  • 专题·大模型安全 | 生成式人工智能的内容安全风险与应对策略
  • CORS跨域+Nginx配置、Apache配置
  • 文件查找和打包压缩【1.7】
  • 速盾:cdn一般多长时间清理下缓存?
  • react hooks--useRef
  • GPT对话知识库——将寄存器中的一位数据读到变量中需要什么步骤?C语言中掩码的作用。
  • 【计算机网络】运输层协议解析
  • Redis存储原理
  • PHP、Java等其他语言转Go时选择GoFly快速快速开发框架指南
  • 【MySQL】获取最近7天和最近14天的订单数量,使用MySQL详细写出,使用不同的方法
  • WebView2新增、修改、删除、禁用右键菜单相关操作。
  • 使用vue创建项目
  • Apache CVE-2021-41773 漏洞攻略
  • 【redis-02】深入理解redis中RBD和AOF的持久化
  • 亚马逊IP关联揭秘:发生ip关联如何处理
  • jQuery Mobile 弹窗
  • 【macOS】【zsh报错】zsh: command not found: python
  • NoSql数据库Redis知识点
  • Redis 使用指南
  • c++与cmake:完整的C++项目构建注意事项
  • Linux自主学习篇
  • MQ入门(4)
  • linux下共享内存的3种使用方式
  • 伊丽莎白·赫莉为杂志拍摄一组素颜写真,庆祝自己荣膺全球最性感女人第一名