🗒️ 2336. 无限集中的最小数字

现有一个包含所有正整数的集合 [1, 2, 3, 4, 5, ...] 。 实现 SmallestInfiniteSet 类: • SmallestInfiniteSet() 初始化 SmallestInfiniteSet 对象以包含 所有 正整数。 • int popSmallest() 移除 并返回该无限集中的最小整数。 • void addBack(int num) 如果正整数 num 不 存在于无限集中,则将一个 num 添加 到该无限集中。

🗒️ 2558. 从数量最多的堆取走礼物

给你一个整数数组 gifts ,表示各堆礼物的数量。每一秒,你需要执行以下操作: • 选择礼物数量最多的那一堆。 • 如果不止一堆都符合礼物数量最多,从中选择任一堆即可。 • 将堆中的礼物数量减少到堆中原来礼物数量的平方根,向下取整。 返回在 k 秒后剩下的礼物数量。

🗒️ 3264. K 次乘运算后的最终数组 I

给你一个整数数组 nums ,一个整数 k  和一个整数 multiplier 。 你需要对 nums 执行 k 次操作,每次操作中: • 找到 nums 中的 最小 值 x ,如果存在多个最小值,选择最 前面 的一个。 • 将 x 替换为 x * multiplier 。 请你返回执行完 k 次乘运算之后,最终的 nums 数组。

🗒️ 1046. 最后一块石头的重量

有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: • 如果 x == y,那么两块石头都会被完全粉碎; • 如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。 最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。

🗒️ 2810. 故障键盘

你的笔记本键盘存在故障,每当你在上面输入字符 'i' 时,它会反转你所写的字符串。而输入其他字符则可以正常工作。 给你一个下标从 0 开始的字符串 s ,请你用故障键盘依次输入每个字符。 返回最终笔记本屏幕上输出的字符串。

🗒️ 1670. 设计前中后队列

请你设计一个队列,支持在前,中,后三个位置的 push 和 pop 操作。 请你完成 FrontMiddleBack 类: • FrontMiddleBack() 初始化队列。 • void pushFront(int val) 将 val 添加到队列的 最前面 。 • void pushMiddle(int val) 将 val 添加到队列的 正中间 。 • void pushBack(int val) 将 val 添加到队里的 最后面 。 • int popFront() 将 最前面 的元素从队列中删除并返回值,如果删除之前队列为空,那么返回 -1 。 • int popMiddle() 将 正中间 的元素从队列中删除并返回值,如果删除之前队列为空,那么返回 -1 。 • int popBack() 将 最后面 的元素从队列中删除并返回值,如果删除之前队列为空,那么返回 -1 。 请注意当有 两个 中间位置的时候,选择靠前面的位置进行操作。比方说: • 将 6 添加到 [1, 2, 3, 4, 5] 的中间位置,结果数组为 [1, 2, 6, 3, 4, 5] 。 • 从 [1, 2, 3, 4, 5, 6] 的中间位置弹出元素,返回 3 ,数组变为 [1, 2, 4, 5, 6] 。

🗒️ 649. Dota2 参议院

Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的 一 项: • 禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中丧失 所有的权利 。 • 宣布胜利:如果参议员发现有权利投票的参议员都是 同一个阵营的 ,他可以宣布胜利并决定在游戏中的有关变化。 给你一个字符串 senate 代表每个参议员的阵营。字母 'R' 和 'D'分别代表了 Radiant(天辉)和 Dire(夜魇)。然后,如果有 n 个参议员,给定字符串的大小将是 n。 以轮为基础的过程从给定顺序的第一个参议员开始到最后一个参议员结束。这一过程将持续到投票结束。所有失去权利的参议员将在过程中被跳过。 假设每一位参议员都足够聪明,会为自己的政党做出最好的策略,你需要预测哪一方最终会宣布胜利并在 Dota2 游戏中决定改变。输出应该是 "Radiant" 或 "Dire" 。

🗒️ 950. 按递增顺序显示卡牌

牌组中的每张卡牌都对应有一个唯一的整数。你可以按你想要的顺序对这套卡片进行排序。 最初,这些卡牌在牌组里是正面朝下的(即,未显示状态)。 现在,重复执行以下步骤,直到显示所有卡牌为止: 1. 从牌组顶部抽一张牌,显示它,然后将其从牌组中移出。 2. 如果牌组中仍有牌,则将下一张处于牌组顶部的牌放在牌组的底部。 3. 如果仍有未显示的牌,那么返回步骤 1。否则,停止行动。 返回能以递增顺序显示卡牌的牌组顺序。 答案中的第一张牌被认为处于牌堆顶部

🗒️ 933. 最近的请求次数

写一个 RecentCounter 类来计算特定时间范围内最近的请求。 请你实现 RecentCounter 类: • RecentCounter() 初始化计数器,请求数为 0 。 • int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。 保证 每次对 ping 的调用都使用比之前更大的 t 值。

🗒️ 726. 原子的数量

给你一个字符串化学式 formula ,返回 每种原子的数量 。 原子总是以一个大写字母开始,接着跟随 0 个或任意个小写字母,表示原子的名字。 如果数量大于 1,原子后会跟着数字表示原子的数量。如果数量等于 1 则不会跟数字。 • 例如,"H2O" 和 "H2O2" 是可行的,但 "H1O2" 这个表达是不可行的。 两个化学式连在一起可以构成新的化学式。 • 例如 "H2O2He3Mg4" 也是化学式。 由括号括起的化学式并佐以数字(可选择性添加)也是化学式。 • 例如 "(H2O2)" 和 "(H2O2)3" 是化学式。 返回所有原子的数量,格式为:第一个(按字典序)原子的名字,跟着它的数量(如果数量大于 1),然后是第二个原子的名字(按字典序),跟着它的数量(如果数量大于 1),以此类推。

🗒️ 227. 基本计算器 II

给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。

🗒️ 224. 基本计算器

给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。