leetcode649队列操作Dota2
- 基本操作
入队:
queue.push() queue.push_back()//两者效果相同
出队:
queue.pop(); queue.pop_back();//都从尾部操作
考虑两个因素:1.每个参议员的决定都由之后的参议员决定 2.决定禁用之后都不能在投票
queue<int>radiant,dire;//使用两个队列去记录参会的议员再队列中的投票顺序 for(int i=0;i<n;++i){ if(senate[i]=='R') radiant.push(i); if(senate[i]=='D')dire.push(i); } while(!radiant.empty()&&!dire.empty()){ if(radiant.front()>dire.front()){ dire.push(dire.front()+n);//加n是因为要重新排队,在前面说明不会被淘汰 } else{ radiant.push(radiant.front()+n); } radiant.pop(); dire.pop();//1.因为被禁言所以要淘汰2.没有被禁言的因为重新在之后排队所以也要删除现在的位置 } return !radiant.empty()?"Radiant":"Dire";
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】