news 2026/4/14 15:58:33

leetcode 3453(二分法)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 3453(二分法)

3453: 分割正方形Ⅰ

*思路:浮点二分

squares[i] = [xi, yi, li]表示一个与 x 轴平行的正方形的左下角坐标和正方形的边长

所有正方形的面积之和为

枚举正方形 (xi​,yi​,li​),如果水平线在正方形底边上方,即 yi​<y,那么这个正方形在水平线下方的面积为

否则在水平线下方的面积为 0。

细节:二分的左边界为 0,右边界为 max(yi​+li​)。这里无需讨论开闭区间,因为我们算的是小数。推荐的写法是固定一个循环次数,因为浮点数有舍入误差,可能算出的 mid 和 left 相等,此时 left=mid 不会更新 left,导致死循环。

循环次数:

for(int i=0;i<47;i++){ double mid=(left+right)/2; (check(mid)? right:left)=mid; } return (left+right)/2; //取中点误差极小

固定做 47 次二分(计算过程如上)

  • 47 次可以把区间长度缩小到(max_y-0)/2^47,对于double的 53 位有效精度来说已经足够

class Solution { public: double separateSquares(vector<vector<int>>& squares) { long long tot_area=0; int max_y=0; for(auto& sq:squares){ int l=sq[2]; //正方形边长 tot_area+=(long long)l*l; max_y=max(max_y,sq[1]+l); } auto check=[&](double y)->bool{ double area=0; for(auto& sq:squares){ double yi=sq[1]; if(yi<y){ double l=sq[2]; area+=l*min(y-yi,l); } } return area>=tot_area/2.0; //返回true,说明可行y可以更小 }; double left=0,right=max_y; for(int i=0;i<47;i++){ double mid=(left+right)/2; (check(mid)? right:left)=mid; } return (left+right)/2; //取中点误差极小 } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 16:31:10

告别分散承载:zData X一体机重构数据库成本模型的实践解析

在多元数据库已成常态的今天&#xff0c;真正推高企业IT成本的&#xff0c;早已不是单一数据库授权费&#xff0c;而是隐藏在背后的承载方式&#xff1a;割裂的基础设施、低效的资源利用率、不断膨胀的运维复杂度。云和恩墨的多元数据库一体化承载平台zData X试图解决的&#x…

作者头像 李华
网站建设 2026/4/12 17:47:42

YOLOv11低照度图像增强主干网络PE-YOLO:技术原理与实现详解

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有!@[TOC] YOLOv11低照度增强主干网络PE-YOLO:原理与完整实现教程 低照度环境下的目标检测一直是计算机视觉领域的重大挑战。传统YOLOv11在光线充足时表现优异,但在…

作者头像 李华
网站建设 2026/4/3 6:32:05

机械行业如何通过插件实现Word公式批量转存?

&#xff08;叼着馕饼敲键盘&#xff09;各位爷们儿看好了&#xff01;咱新疆程序员今天要搞个骚操作——给UEditor装个"文档吞噬兽"插件&#xff0c;让甲方爸爸能直接把Word文档囫囵吞进官网后台&#xff01; &#x1f680; 前端插件代码&#xff08;Vue3版&#xf…

作者头像 李华
网站建设 2026/4/11 2:43:45

HBuilderX 项目上架 iOS app上架 App Store 的关键流程

如果你是用 HBuilderX 或类似工具完成移动端开发的&#xff0c;第一次把应用送进 App Store&#xff0c;大概率会觉得流程比代码复杂得多。 问题并不在某一步特别难&#xff0c;而在于每一步都依赖前一步是否正确完成&#xff0c;一旦中间环节有偏差&#xff0c;后面的操作看起…

作者头像 李华
网站建设 2026/4/13 23:10:26

高温环境下锂电池热失控的潜在风险及安全应对措施

18650锂电池高温热失控「啪」的一声炸响&#xff0c;我的无人机突然从半空坠落。拆开焦黑的外壳&#xff0c;罪魁祸首是那颗鼓包的18650电池——它经历了教科书般的热失控。这种广泛应用于笔记本电脑、充电宝的圆柱形锂电池&#xff0c;在高温下就像被点燃引线的火药桶。当电池…

作者头像 李华