当前位置: 首页 > 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。

http://www.dtcms.com/a/24669.html

相关文章:

  • 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头文件的写法
  • 物联网技术赋能预测性维护的深度剖析与前景展望
  • 华为FusionCompute虚拟化平台
  • MacOS 15.3 卸载系统内置软件
  • 微信小程序---计划时钟设计与实现
  • 网络安全三件套
  • 【深度学习】Transformer入门:通俗易懂的介绍
  • 《仙台有树》里的馅料(序)
  • leetcode:942. 增减字符串匹配(python3解法)
  • 使用 DeepSeek + 语音转文字工具 实现会议整理
  • GO语言的安装以及第一个Go语言程序
  • 国鑫DeepSeek 671B本地部署方案:以高精度、高性价比重塑AI推理新标杆