- 博客(7)
- 收藏
- 关注
原创 noob90 栈和排序
摘要:给定一个1到n的排列P和一个空栈,要求通过入栈和出栈操作生成字典序最大的输出序列。算法核心是维护一个期望值need(初始为n),遍历排列元素时入栈,当栈顶等于need时立即出栈并减小need。遍历结束后,将栈中剩余元素依次出栈。这种方法确保了在每一步都优先弹出当前可能的最大值,从而得到字典序最大的合法序列。时间复杂度为O(n),适用于大规模数据(n≤10^6)。
2025-12-15 17:54:14
149
原创 noob86 吐泡泡
摘要:本文描述了一个泡泡合并与爆炸的模拟问题。小鱼儿会吐出大泡泡"O"和小泡泡"o",相邻两个小泡泡会合并成大泡泡,相邻两个大泡泡会相互爆炸消失。使用栈数据结构来模拟这一过程:当遇到小泡泡时检查栈顶元素,若同为小泡泡则合并为大泡泡并继续检查;若遇到大泡泡则检查栈顶元素,若同为大泡泡则相互爆炸。最终输出剩余的泡泡序列。算法时间复杂度为O(n),适用于长度不超过10^5的字符串输入。
2025-12-15 10:08:24
322
原创 基础 约瑟夫环
有 n个人(编号 0∼n−1)围成一圈,从编号为 k 的人开始报数,报数依次为 1,2,…由于不断有人出队,因此使用k=(k+1)%people.size()来模拟报到末尾后,再从第一个人开始报的循环。在一行中输入三个整数 n(2≦n≦100),k(0≦k≦n−1),m(1≦m≦100),用空格隔开。1(1),2(2)→2出队,剩余 [0,1,3,4];3(1),0(2)→0出队,剩余 [3],输出 3。3(1),4(2)→4出队,剩余 [0,1,3];0(1),1(2)→1出队,剩余 [0,3];
2025-10-03 15:01:18
283
原创 力扣 面试题 16.19.水域大小
摘要:本文介绍了一种计算矩阵中所有池塘大小并按升序排序的方法。给定一个表示土地海拔的矩阵,其中0代表水域,相连的水域构成池塘。通过深度优先搜索(DFS)算法遍历每个水域点,统计相连接的池塘面积。使用8方向增量数组处理垂直、水平和对角连接,并用访问矩阵标记已计算水域。最后将所有池塘面积排序输出。与LeetCode 695题类似,但需记录所有水域面积而非仅最大值。代码实现包括DFS递归搜索和主函数处理输入输出。
2025-07-03 23:21:31
214
原创 力扣 200.岛屿的数量
给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。
2025-07-03 16:31:23
549
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅