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

Leetcode 3453. Separate Squares I

  • Leetcode 3453. Separate Squares I
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3453. Separate Squares I

1. 解题思路

这一题思路上就是一个二分法,显然,随着y的增加,面积的增长是一个递增函数,因此,我们使用二分法找到最小的y使得其下方面积为总面积的一半即可。

而对于如何计算y下方的面积,这里我们只是暴力地做了一个循环遍历,首先将squares全部按照y坐标进行有序排列,然后计算一下所有起始位置在给定y下方的正方形的相应面积即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def separateSquares(self, squares: List[List[int]]) -> float:
        S = sum(l*l for x, y, l in squares)
        squares = sorted(squares, key=lambda x: (x[1], x[2]))
        
        def fn(y):
            s = 0
            for xi, yi, li in squares:
                if yi >= y:
                    break
                s += li * (min(yi+li, y) - yi)
            return s
        
        l, r = min(x[1] for x in squares), max(x[1]+x[2] for x in squares)
        while r-l > 1e-5:
            k = (l+r) / 2
            s = fn(k)
            if s < S / 2:
                l = k
            else:
                r = k
        return r

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

相关文章:

  • MISRA C vs CERT C 是两种广泛使用的 C 语言编码规范对比介绍
  • RabbitMQ服务异步通信
  • 修改时无条件,可以自定义id条件(通过查询)
  • C++ Primer 访问控制与封装
  • 防御保护第三次练习
  • 【大学生职业规划大赛备赛PPT资料PDF | 免费共享】
  • 论文阅读 DOES END-TO-END AUTONOMOUS DRIVING REALLY NEED PERCEPTION TASKS?
  • 还在为AI模型部署发愁?VSCode插件让你轻松拥有DeepSeek和近百种AI模型!
  • sql注入中,如果information_schema被过滤,该怎么绕过
  • 【Linux系统】—— 调试器 gdb/cgdb的使用
  • 腾讯云大模型知识引擎×DeepSeek赋能文旅
  • 筛选相同项
  • 深入解析TCP/IP协议:从理论到实践的全链路剖析
  • Pytorch论文实现之GAN-C约束鉴别器训练自己的数据集
  • 机器学习的数学基础(三)——概率与信息论
  • SP字体UI放大代码
  • ComfyUI的安装
  • 基于Electron+Vue3创建桌面应用
  • C语言.h头文件的写法
  • 物联网技术赋能预测性维护的深度剖析与前景展望
  • 外交部回应中美经贸高层会谈:这次会谈是应美方请求举行的
  • 世界人形机器人运动会将在北京“双奥场馆”举行
  • 潘功胜发布会答问五大要点:除了降准降息,这些政策“含金量”也很高
  • 金融监管总局:正在修订并购贷款管理办法,将进一步释放并购贷款的潜力
  • 预告:央行等部门将发声,介绍“一揽子金融政策支持稳市场稳预期”有关情况
  • 科技日报刊文批院士专家“赶场式”跑会:助长浮躁之气功利之心