news 2026/5/8 18:25:38

leetcode 3453. 分割正方形 I 中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 3453. 分割正方形 I 中等

给你一个二维整数数组squares,其中squares[i] = [xi, yi, li]表示一个与 x 轴平行的正方形的左下角坐标和正方形的边长。

找到一个最小的y 坐标,它对应一条水平线,该线需要满足它以上正方形的总面积等于该线以下正方形的总面积。

答案如果与实际答案的误差在10^-5以内,将视为正确答案。

注意:正方形可能会重叠。重叠区域应该被多次计数

示例 1:

输入:squares = [[0,0,1],[2,2,1]]

输出:1.00000

解释:

任何在y = 1y = 2之间的水平线都会有 1 平方单位的面积在其上方,1 平方单位的面积在其下方。最小的 y 坐标是 1。

示例 2:

输入:squares = [[0,0,2],[1,1,1]]

输出:1.16667

解释:

面积如下:

  • 线下的面积:7/6 * 2 (红色) + 1/6 (蓝色) = 15/6 = 2.5
  • 线上的面积:5/6 * 2 (红色) + 5/6 (蓝色) = 15/6 = 2.5

由于线以上和线以下的面积相等,输出为7/6 = 1.16667

提示:

  • 1 <= squares.length <= 5 * 10^4
  • squares[i] = [xi, yi, li]
  • squares[i].length == 3
  • 0 <= xi, yi <= 10^9
  • 1 <= li <= 10^9
  • 所有正方形的总面积不超过10^12

分析:浮点二分答案,设当前的上界为 r,下界为 l,中线为 mid。分别计算当前答案的上方和下方面积和,如果面积差小于 10 的 -5 次方,则可将 r=mid;否则 l=mid。因为题目要求答案误差范围在 10 的 -5 次方内,所以结束条件为 r-l<0.00001。

double separateSquares(int** squares, int squaresSize, int* squaresColSize) { double ans=0; int low=squares[0][1],high=squares[0][1]+squares[0][2]; for(int i=1;i<squaresSize;++i) low=fmin(low,squares[i][1]),high=fmax(high,squares[i][1]+squares[i][2]); double l=low,r=high; while(l<r) { double mid=(l+r)/2.0,area_l=0.0,area_h=0.0; for(int i=0;i<squaresSize;++i) { if(mid<=squares[i][1])area_h+=1.0*squares[i][2]*squares[i][2]; else if(mid>=squares[i][1]+squares[i][2])area_l+=1.0*squares[i][2]*squares[i][2]; else { double temp=squares[i][2]*1.0*(squares[i][1]+squares[i][2]-mid); area_h+=temp,area_l+=1.0*squares[i][2]*squares[i][2]-temp; } } if(area_h<=area_l)r=mid; else if(area_h>area_l)l=mid; // printf("l=%f r=%f mid=%f\n",l,r,mid); if(r-l<=0.00001) { ans=l;break; } } return ans; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 13:43:37

沙虫病毒与供应链安全:软件供应链成为网络安全的阿喀琉斯之踵

无论是React2Shell、沙虫病毒&#xff08;Shai-Hulud&#xff09;还是XZ Utils漏洞&#xff0c;软件供应链安全正面临多重风险威胁。现代应用程序由众多组件构成&#xff0c;每个组件连同其开发环境都可能成为攻击入口。无论企业是自主开发代码还是依赖第三方供应商&#xff0c…

作者头像 李华
网站建设 2026/5/1 9:10:59

水厂安全监测管理系统:御控物联网方案

在城市化快速发展的今天&#xff0c;供水安全已成为城市生命线的核心保障。然而传统水厂监测依赖人工巡检、数据分散、响应滞后等痛点长期存在。御控物联网水厂安全远程监测系统&#xff0c;正以数字化、智能化技术重塑供水安全监测新范式。深度痛点&#xff1a;传统水厂安全监…

作者头像 李华
网站建设 2026/5/1 12:02:37

51单片机(1)

一、嵌入式与 51 单片机基础认知&#xff08;一&#xff09;嵌入式系统概念嵌入式系统是以应用为中心&#xff0c;以计算机技术为基础&#xff0c;软硬件可裁剪的专用计算机系统。它广泛应用于智能家居、工业控制、智能穿戴等众多领域&#xff0c;核心特点是针对性强、资源利用…

作者头像 李华
网站建设 2026/5/1 6:14:26

程序员如何转行大模型?一份详尽的学习路线与实战指南,一份详细攻略_转行大模型学习路线

本文为程序员提供大模型领域转行攻略&#xff0c;涵盖明确方向、掌握基础知识、深入学习Transformer架构、预训练微调技术、实践项目、参与开源社区等关键环节。同时提供七个阶段学习路径和免费资源&#xff0c;帮助小白从零开始系统学习大模型技术&#xff0c;构建个人品牌&am…

作者头像 李华
网站建设 2026/5/1 17:07:46

CST电动汽车EMC仿真(三)——初探轴电压

轴电流是影响电机寿命的重要因素之一。正常情况下&#xff0c;轴承的内圈和外圈之间的润滑油膜可以起到绝缘的作用&#xff0c;轴电流接近为零&#xff1b;当轴承内、外圈之间的轴电压增加到一定数值时&#xff0c;尤其在电机启动时&#xff0c;润滑油膜还未稳定形成&#xff0…

作者头像 李华
网站建设 2026/5/1 2:33:14

突破低光照检测瓶颈:PE-YOLO核心技术解析与实战应用

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有!@[TOC] 攻克低照度目标检测难题:PE-YOLO的核心原理与实战指南 在计算机视觉的实际部署中,理想光照条件是一种奢侈。安防监控、自动驾驶夜间感知、医学影像分析、地…

作者头像 李华