2026年--Lc332-649. Dota2 参议院(队列)--java版

1.题目


2.思路

把所有下标看成时间线:

第一轮时间:0,1,2,...,n-1

第二轮时间:n,n+1,...,2n-1

第三轮时间:2n,...

某人第一次在 i 时刻行动,下一次自然在 i+n,再下一次 i+2n......

队列就是在维护"谁下一次最早行动"。

放队尾:表示"他还活着,下一轮还会回来投票"

+n:表示"他的下一次出场发生在下一轮(排到本轮所有人后面)"

3.代码实现

java 复制代码
class Solution {
    public String predictPartyVictory(String senate) {
        int n=senate.length();
        Queue<Integer> ra=new ArrayDeque<Integer>();
        Queue<Integer> di=new ArrayDeque<Integer>();
        for(int i=0;i<n;i++)
        {
            if(senate.charAt(i)=='R')
            {
                ra.offer(i);
            }else{
                di.offer(i);
            }
        }
        while(!ra.isEmpty()&&!di.isEmpty())
        {
            int raInndex=ra.poll();
            int diIndex=di.poll();
            if(raInndex<diIndex)
            {//坐标小的,可以投敌方的反对票。
            //并且可以在下一轮再投敌方反对票,所以要+队列的长度,放在队尾
                ra.offer(raInndex+n);
            }else{
                di.offer(diIndex+n);
            }
        }
        if(!ra.isEmpty())
        {
            return  "Radiant";
        }else{
            return  "Dire";
        }
        
    }
}
相关推荐
坚定信念,勇往无前几秒前
Maven 私有仓库-nexus
java
Minner-Scrapy7 分钟前
Scrapy 2.17 源码解析:Scheduler 调度器与磁盘/内存双队列
java·爬虫·python·scrapy·网络爬虫·twisted
晚风醉蝶17 分钟前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
夏天拐跑了西瓜40 分钟前
Spring Cloud 微服务实战(三):一个服务挂了,凭什么拖垮整个系统?Sentinel 限流熔断实战
java·spring cloud·微服务
CRMEB定制开发1 小时前
2026年最值得推荐的10大开源商城系统盘点
开发语言·人工智能·开源·商城系统·小程序商城
2601_967264281 小时前
Jetpack Compose 实践指南:从入门到进阶
java·学习
buhuizhiyuci1 小时前
【QT-百日筑基篇】修真世界摸爬滚打多年,终于黄天不负有心人,突破炼器中期——常用控件QWight的属性
开发语言·c++·qt·gui·图形化
m0_587383002 小时前
社区家政系统开发实战:从需求分析到上线部署全指南
java·spring boot·spring·需求分析
凤山老林2 小时前
动态 i18n 体系落地:Spring Boot 多租户热加载与前后端协同实践
java·spring boot·后端·i18n
白露与泡影2 小时前
解密 Pi 的 Harness 工程:Agent 会话如何实现持久化与恢复
java·人工智能·算法