四川交投建设招标网站,茶楼网站,商城网站里可以再放cms吗,网站首页生成静态页面总结leetcode75中队列的算法题解题思路。 上一篇#xff1a;力扣75——哈希表/哈希集合 以下代码大部分为本人所写#xff0c;少部分为官方示例代码。 力扣75——队列 1 最近的请求次数2 Dota2 参议院1-2 解题总结 1 最近的请求次数
题目#xff1a;
写一个 RecentCounter…总结leetcode75中队列的算法题解题思路。 上一篇力扣75——哈希表/哈希集合 以下代码大部分为本人所写少部分为官方示例代码。 力扣75——队列 1 最近的请求次数2 Dota2 参议院1-2 解题总结 1 最近的请求次数
题目
写一个 RecentCounter 类来计算特定时间范围内最近的请求。请你实现 RecentCounter 类RecentCounter() 初始化计数器请求数为 0 。
int ping(int t) 在时间 t 添加一个新请求其中 t 表示以毫秒为单位的某个时间并返回过去 3000 毫秒内发生的所有请求数包括新请求。确切地说返回在 [t-3000, t] 内发生的请求数。
保证 每次对 ping 的调用都使用比之前更大的 t 值。题解每次调用ping函数时将队列中时间间隔已经超过3000ms的pop出队列。
class RecentCounter {queueint q;
public:RecentCounter() {}int ping(int t) {q.push(t);while (q.front() t - 3000) {q.pop();}return q.size();}
};
2 Dota2 参议院
题目
Dota2 的世界里有两个阵营Radiant天辉和 Dire夜魇Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中每一位参议员都可以行使两项权利中的 一 项禁止一名参议员的权利参议员可以让另一位参议员在这一轮和随后的几轮中丧失 所有的权利 。
宣布胜利如果参议员发现有权利投票的参议员都是 同一个阵营的 他可以宣布胜利并决定在游戏中的有关变化。
给你一个字符串 senate 代表每个参议员的阵营。字母 R 和 D分别代表了 Radiant天辉和 Dire夜魇。然后如果有 n 个参议员给定字符串的大小将是 n。以轮为基础的过程从给定顺序的第一个参议员开始到最后一个参议员结束。这一过程将持续到投票结束。所有失去权利的参议员将在过程中被跳过。假设每一位参议员都足够聪明会为自己的政党做出最好的策略你需要预测哪一方最终会宣布胜利并在 Dota2 游戏中决定改变。输出应该是 Radiant 或 Dire 。题解两个队列各自存储2个阵营的参议院。
class Solution {
public:string predictPartyVictory(string senate) {int n senate.size();queueint radiant, dire;for (int i 0; i n; i) {if (senate[i] R) {radiant.push(i);}else {dire.push(i);}}while (!radiant.empty() !dire.empty()) {if (radiant.front() dire.front()) {radiant.push(radiant.front() n);}else {dire.push(dire.front() n);}radiant.pop();dire.pop();}return !radiant.empty() ? Radiant : Dire;}
};
1-2 解题总结
特点按时间先后执行操作先进先出先操作。