[Leetcode] 699. Falling Squares 解题报告

Leetcode 699. Falling Squares Leetcode 699. Falling Squares 很久没有写题解了,主要是leetcode没啥有意思的题目,写来没啥意思。 今天这题还算有点意思,可以分析分析。 描述 给你一个序列表示下落的俄罗斯方块的情况。序列里面含有 NNN 对值 (L,S)(L,S)(L, S),其中LLL表示方块下落的左坐标,SSS表示下落方块的边长,这里下落的方块永远是正方形。其中N≤1000,L≤... 阅读详情

题目:

On an infinite number line (x-axis), we drop given squares in the order they are given.

The i-th square dropped (positions[i] = (left, side_length)) is a square with the left-most point being positions[i][0] and sidelength positions[i][1].

The square is dropped with the bottom edge parallel to the number line, and from a higher height than all currently landed squares. We wait for each square to stick before dropping the next.

The squares are infinitely sticky on their bottom edge, and will remain fixed to any positive length surface they touch (either the number line or another square). Squares dropped adjacent to each other will not stick together prematurely.


Return a list ans of heights. Each height ans[i] represents the current highest height of any square we have dropped, after dropping squares represented by positions[0], positions[1], ..., positions[i].

Example 1:

Input: [[1, 2], [2, 3], [6, 1]]
Output: [2, 5, 5]
Explanation:

After the first drop of positions[0] = [1, 2]: _aa _aa ------- The maximum height of any square is 2.

After the second drop of positions[1] = [2, 3]: __aaa __aaa __aaa _aa__ _aa__ -------------- The maximum height of any square is 5. The larger square stays on top of the smaller square despite where its center of gravity is, because squares are infinitely sticky on their bottom edge.

After the third drop of positions[1] = [6, 1]: __aaa __aaa __aaa _aa _aa___a -------------- The maximum height of any square is still 5. Thus, we return an answer of [2, 5, 5].

Example 2:

Input: [[100, 100], [200, 100]]
Output: [100, 100]
Explanation: Adjacent squares don't get stuck prematurely - only their bottom edge can stick to surfaces.

Note:

  • 1 <= positions.length <= 1000.
  • 1 <= positions[i][0] <= 10^8.
  • 1 <= positions[i][1] <= 10^6.

    思路:

    有点类似于“城市天际线”那道题目,没怎么看懂网上参考题目的复杂逻辑,后面再补充具体解释吧。。。

    代码:

    class Solution {
    public:
        vector<int> fallingSquares(vector<pair<int, int>>& positions) {
            map<pair<int,int>, int> mp;
            mp[{0,1000000000}] = 0;                 // the initialization
            vector<int> ans;
            int mx = 0;
            for (auto &v : positions) {
                vector<vector<int>> toAdd;
                int len = v.second;
                int a = v.first, b = v.first + v.second, h = 0;
                auto it = mp.upper_bound({a,a});    // the first ont that is larger than a
                if (it != mp.begin() && (--it)->first.second <= a) {
                    ++it;
                }
                while (it != mp.end() && it->first.first < b) {
                    if (it->first.first < a) {
                        toAdd.push_back({it->first.first, a, it->second});
                    }
                    if (it->first.second > b) {
                        toAdd.push_back({b, it->first.second, it->second});
                    }
                    h = max(h, it->second);
                    it = mp.erase(it);
                }
                mp[{a, b}] = h + len;
                for (auto &t : toAdd) {
                    mp[{t[0], t[1]}] = t[2];
                }
                mx = max(mx, h + len);
                ans.push_back(mx);
            }
            return ans;
        }
    };
    
Multisim 14.0实战:从零搭建可调幅多波形信号发生器(附仿真文件) 本文详细介绍了如何在Multisim 14.0中从零搭建一个可调幅多波形信号发生器,涵盖方波、三角波和正弦波的生成原理与实现步骤。通过核心电路架构解析、关键参数设计及Multisim实战操作,帮助电子工程学习者和硬件工程师掌握信号发生器的设计与调试技巧,并提供仿真文件供实践验证。 阅读详情

相关推荐

Springboot计算机毕业设计校园树洞微信小程序【附源码】开题+论文+mysql+程序+部署

因此,开发一款专门针对校园用户的树洞微信小程序,为学生提供一个安全、私密、便捷的倾诉和交流平台,具有重要的现实意义和应用价值。通过本研究的实施,我们预期能够开发出一款功能全面、操作便捷的校园树洞微信小程序,为校园师生提供一个安全、私密、便捷的倾诉和交流平台。此外,通过不断优化和改进小程序的功能和服务,我们预期能够提升用户体验和满意度,推动校园树洞小程序的持续发展,并为校园生活的和谐与健康发展做出积极贡献。同时,通过不断优化小程序的功能和服务,提升用户体验和满意度,推动校园树洞小程序的广泛应用和持续发展。

光冯毕设程序 1666

【LeetCode】掉落的方块 [H](线段树)

LeetCode 699:想象一下标准的俄罗斯方块游戏,X轴是积木最终下落到底的轴线。 下面是这个游戏的简化版: 1. 只会下落正方形积木 2. [a,b] -> 代表一个边长为b的正方形积木,积木左边缘沿着X = a这条线从上方掉落 3. 认为整个X轴都可能接住积木,也就是说简化版游戏是没有整体的左右边界的 4. 没有整体的左右边界,所以简化版游戏不会消除积木,因为不会有哪一层被填满 给定一个N*2的二维数组matrix,可以代表N个积木依次掉落,返回每一次掉落之后的最大高度。使用线段树求解。

小七的博客 524

Unity动态创建Avatar骨骼映射

Unity Avatar骨骼映射动态创建,适配Unity通用动画,无需经过第三方建模软件,可运行时创建

Nbin_Newby的博客 1万+

力扣(leetcode)每日一题 699 掉落的方块 | 线段树|经典

还是去网上找视频看把,这个真不好解释首先正放心 4,6 会落在4,6和10,6的位置,但是10,6的位置是没有支点的,也就是用不了的。因为这时候10位置来了方块,是无法累加上去的然后这里不能记录4,6 5,6 6,6 7,6 8,6 9,6 这里需要对点进行map的压缩。这样只要头尾的点就可以了。也就是你会有很多点 数值很大 100,10000,555555,666666,666669但是会通过hash映射到 1,2,3,4,5上。非常的紧凑。

ganjiee0007的博客 485

新手必看!华为S5700交换机健康检查清单:从CPU到日志的完整巡检流程

本文为新手网管人员提供华为S5700交换机的健康检查完整指南,涵盖CPU、内存、温度、日志等核心指标的日常维护流程。通过详细的display命令和实用案例,帮助用户快速掌握设备体检技巧,确保交换机稳定运行。

weixin_29251337的博客 236

UNext:基于 MLP 的快速医学图像分割网络

有代码,可深入学习轻量级分割模型的论文切入点 UNet 及其最新扩展(如 TransUNet)近年来一直是领先的医学图像分割方法。然而,这些网络无法有效地用于应用中的快速图像分割,因为它们参数繁重、计算复杂且使用缓慢。为此,我们提出了 UNeXt,它是一种基于卷积多层感知器(MLP)的图像分割网络。我们以有效的方式设计了 UNeXt,其中包括早期卷积阶段和潜在阶段的 MLP 阶段。我们提出了一个标记化的 MLP 块,我们可以在其中有效地标记和投影卷积特征,并使用 MLP 来对表示进行建模。

Philo的博客 3940

(nice!!!)LeetCode 699. 掉落的方块(线段树、暴力枚举)

【代码】(nice!!!)LeetCode 699. 掉落的方块(线段树、暴力枚举)

记录一些刷过的题并分享学习心得 577

iOS面试题大全(附带答案)

C语言相关面试题 1.static有什么用途? 答案:在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数。 static 属于静态变量,使用它修饰的变量生命周期是整个源程序。 @1.在函数体内的 static 变量的作用范围为该函数体,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; @2.在模块内的 static 全局变量可以被模块内所有函数访问,但不能被模块外其它函数访问; @3.在模块内的 static 函数只被这一模块内的其它函数调用,这个函数的使用范围被限

IOSNF的博客 2423

Java&C++题解与拓展——leetcode699.掉落的方块【线段树】

leetcode699解题思路,用Java和C++两种语言分别编写,并对所使用类和方法进行学习记录。

菜鸡成长之路 425

【腾讯小龙虾 WorkBuddy 专栏 03】技能(Skills)制作全教程!自定义技能编写、导出分享、导入使用一步到位

🔥腾讯AI智能体WorkBuddy自定义技能全攻略 本文为零基础用户提供WorkBuddy自定义技能的完整教程,涵盖技能概念、编写规范到实操全流程。核心内容包括: 技能本质:标准化任务指令模板,可固化重复操作流程 三大价值:一键执行重复任务/跨设备共享/降低使用门槛 实操演示:以"桌面文档自动分类"为例,分步讲解编写、测试、导出 共享方案:支持单技能/批量导出,通过任意渠道传输分享 导入指南:3秒完成他人技能加载,并提供常见问题解决方案 高阶优化:增加异常处理、版本管理等提升技能普适性

AI人人懂 2947

【人工智能】向量数据库全生命周期数据安全防护体系:破解向量化与检索双环节泄露风险

大模型时代,向量数据库已成为RAG(检索增强生成)架构、语义检索、多模态应用的核心基础设施,解决了大模型幻觉、长上下文窗口限制、私有知识落地等核心痛点。但行业普遍存在认知误区:将Embedding向量等同于“无害的语义压缩乱码”,忽视了向量数据原生的泄露风险。

奶爸的编程之路,也就一周冷个三天 156

【六十四】【算法分析与设计】699. 掉落的方块,离散化操作,线段树优化,区间查询sum+区间更新update

在二维平面上的 x 轴上,放置着一些方块。给你一个二维整数数组positions,其中表示:第i个方块边长为,其左侧边与 x 轴上坐标点left(i)对齐。每个方块都从一个比目前所有的落地方块更高的高度掉落而下。方块沿 y 轴负方向下落,直到着陆到或者是。一个方块仅仅是擦过另一个方块的左侧边或右侧边不算着陆。一旦着陆,它就会固定在原地,无法移动。在每个方块掉落后,你必须记录目前所有已经落稳的。返回一个整数数组ans,其中ans[i]表示在第i块方块掉落后堆叠的最高高度。[2,5,5]

m0_74163972的博客 1099

海外购物商城源码 带即时通讯IM源码

在海外购物商城中,即时通讯IM源码可以为用户提供更便捷、高效的沟通方式,帮助解决跨国交易中的语言和文化差异问题。总之,即时通讯IM源码在海外购物商城中扮演着重要的角色,可以为用户提供更方便、高效的沟通方式,解决跨国交易中的语言和文化差异问题。(购买本专栏可免费下载栏目内所有资源不受限制,持续发布中,需要注意的是,本专栏为批量下载专用,并无法保证某款源码或者插件绝对可用,介意不要购买)实时翻译:即时通讯IM源码提供实时翻译功能,能够快速准确地翻译不同语言之间的文字、语音、视频等信息,帮助用户克服语言障碍。

很酷的站长的博客 259

LeetCode //C - 699. Falling Squares

【代码】LeetCode //C - 699. Falling Squares。

Made in Code 1937

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LeetCode每日一题(699. Falling Squares)

用 coordinate compression 和 segment tree 来解。

wangjun861205的博客 783

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

leetcode 699 Falling Squares

用一个二维数组记录当前的总方块情况,每个一维数组有三个元素,分别是区间左端点、右端点,高度。每次加一个木块的时候就对all进行一次遍历,求得当前的最大值。 #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;map&gt; #include &lt;set&gt; #include &lt;queue&gt; using...

DUT_LYH 3万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【leetcode】699. Falling Squares

题目如下: On an infinite number line (x-axis), we drop given squares in the order they are given. Thei-th square dropped (positions[i] = (left, side_length)) is a square with the left-most point bein...

weixin_34377919的博客 260

高带宽激光锁定PID控制器:原理、选型与PDH稳频实操指南

PID控制是工业自动化中的基础反馈技术,通过比例、积分、微分环节调节系统响应。在激光锁定场景中,环路带宽直接决定系统对高频扰动的抑制能力,高带宽设计需兼顾增益带宽积、输入噪声与相位裕度。高带宽PID控制器能有效压制激光频率漂移和相位噪声,提升锁定精度,广泛应用于PDH稳频、光学相位锁定、激光功率稳定及光频梳锁定等精密测量实验。本文围绕Aerodiode高带宽激光锁定PID控制器,拆解核心参数与选型要点,并给出实操调试方法。

weixin_33798152的博客 187

LeetCode699. Falling Squares

On an infinite number line (x-axis), we drop given squares in the order they are given. Thei-th square dropped (positions[i] = (left, side_length)) is a square with the left-most point beingpo...

dbvz4901的博客 326

【Leetcode】699. Falling Squares

题目地址: https://leetcode.com/problems/falling-squares/ 给定一个数学里的二维平面直角坐标系xOyxOyxOy,想象有若干正方形方块掉落,题目保证正方形方块的左下端点的坐标是正整数,也保证方块边长是正整数。想象xxx轴是地面,如果某个方块掉落的过程中遇到了之前的某个方块(擦边而过不算),则该方块会叠到上面。现在给定一个长nnn数组AAA,A[i]A[i]A[i]存了第iii个掉落的方块的信息,其中A[i][0]A[i][0]A[i][0]表示它的左下角的xxx

数学、算法爱好者的博客 284

leetcode 699. Falling Squares

On an infinite number line (x-axis), we drop given squares in the order they are given. Thei-th square dropped (positions[i] = (left, side_length)) is a square with the left-most point beingpositio...

cmy203的博客 153

【Leetcode】699. Falling Squares 699. 掉落的方块

解法 要说难其实也不难……O(n2)O(n^2)O(n2)的方法都可以过 解法一:暴力 每放下一个方块,记录一下放下后这个方块顶端高度,它由两部分组成:一是方块自己的高度,二是以前放下的与该方块相交的方块的顶端高度的最大值,由这两部分相加构成 得到每个方块放下时的顶端高度之后,最后的ans数组就是这个高度数组的前缀最大值数组 class Solution(object): def f...

lemonmillie的博客 672

leetcode 困难题 699. Falling Squares 掉落的方块

本文提出了一种解决掉落的方块问题的算法。使用有序集合记录不同高度的区间,通过重载运算符确保高度最高的区间优先处理。算法采用双循环遍历,每次处理一个下落的方块时,检查与现有区间的重叠情况,并根据不同重叠类型分割和更新区间:包括部分重叠、完全覆盖等情况。对于每个新方块,计算其最终高度并更新最大高度值。算法的时间复杂度取决于方块数量和区间重叠情况,通过有序集合高效管理区间信息,最终返回每个方块下落后的最大高度序列。该方案有效解决了方块堆叠过程中的高度计算问题。

邹九的个人博客 412

[Swift]LeetCode699. 掉落的方块 | Falling Squares

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/stren...

weixin_30376323的博客 273

leetcode 699. Falling Squares 俄罗斯方块的最高高度 + 暴力遍历即可

On an infinite number line (x-axis), we drop given squares in the order they are given. The i-th square dropped (positions[i] = (left, side_length)) is a square with the left-most point being positio...

JackZhangNJU的专栏 1715

java 从窗口掉落字母_LeetCode 699. Falling Squares 掉落的方块 (Java)

题目:On an infinite number line (x-axis), we drop given squares in the order they are given.Thei-th square dropped (positions[i] = (left, side_length)) is a square with the left-most point beingpositi...

weixin_32488761的博客 207
上一篇: [Leetcode] 698. Partition to K Equal Sum Subsets 解题报告
下一篇: [Leetcode] 711. Number of Distinct Islands II 解题报告
魔豆Magicbean
博客等级 码龄19年 146粉丝 742原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值