933.最近的请求次数
思路:
- ping 时直接放入队列,判断队头时间是否再范围,不在则弹出
class RecentCounter {
public:
queue<int>que;
RecentCounter() {
}
int ping(int t) {
que.push(t);
while(!que.empty() && que.front()<t-3000) que.pop();
return que.size();
}
};
649.Dota2 参议院
分析:题意模糊
思路一:两个循环队列
- 两个栈存储两种字符的下标,然后直接比较队头下标的大小
- 对头下标大的先弹出,小的放到队列尾部
class Solution {
public:
string predictPartyVictory(string senate) {
int n=senate.size();
queue<int>indexD,indexR;
for(int i=0;i<n;i++){//找到两种字符的下标
if(senate[i]=='R') indexR.push(i);
else indexD.push(i);
}
while(!indexD.empty() && !indexR.empty()){//循环队列
if(indexD.front()<indexR.front()){
indexR.pop();
int mid=indexD.front()+n;
indexD.pop();
indexD.push(mid);
}else{
indexD.pop();
int mid=indexR.front()+n;
indexR.pop();
indexR.push(mid);
}
}
return indexD.empty()?"Radiant":"Dire";
}
};