Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇)

Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:

禁止一名参议员的权利:

参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。

宣布胜利:

      如果参议员发现有权利投票的参议员都是同一个阵营的,他可以宣布胜利并决定在游戏中的有关变化。

给定一个字符串代表每个参议员的阵营。字母 “R” 和 “D” 分别代表了 Radiant(天辉)和 Dire(夜魇)。然后,如果有 n 个参议员,给定字符串的大小将是 n。

以轮为基础的过程从给定顺序的第一个参议员开始到最后一个参议员结束。这一过程将持续到投票结束。所有失去权利的参议员将在过程中被跳过。

假设每一位参议员都足够聪明,会为自己的政党做出最好的策略,你需要预测哪一方最终会宣布胜利并在 Dota2 游戏中决定改变。输出应该是 Radiant 或 Dire。

示例 1:

输入:“RD”
输出:“Radiant”
解释:第一个参议员来自 Radiant 阵营并且他可以使用第一项权利让第二个参议员失去权力,因此第二个参议员将被跳过因为他没有任何权利。然后在第二轮的时候,第一个参议员可以宣布胜利,因为他是唯一一个有投票权的人
示例 2:

输入:“RDD”
输出:“Dire”
解释:
第一轮中,第一个来自 Radiant 阵营的参议员可以使用第一项权利禁止第二个参议员的权利
第二个来自 Dire 阵营的参议员会被跳过因为他的权利被禁止
第三个来自 Dire 阵营的参议员可以使用他的第一项权利禁止第一个参议员的权利
因此在第二轮只剩下第三个参议员拥有投票的权利,于是他可以宣布胜利

提示:

给定字符串的长度在 [1, 10,000] 之间.

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/dota2-senate
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路来源:
作者:mu-mu-mu-mu-mu
链接:https://leetcode-cn.com/problems/dota2-senate/solution/java-649dota2can-yi-yuan-chao-9961-by-mu-0dqh/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

class Solution {public String predictPartyVictory(String senate) {int Rnumber = 0;//R阵营总人数int Dnumber = 0;//D阵营总人数int curBanR = 0;//当前被banint curBanD = 0;//当前被banint totalBanR = 0;//被ban总数int totalBanD = 0;//被ban总数char[] chars = senate.toCharArray();boolean flag = true;//遍历完for就为false,因为人数只用记录一次while(true){for(int i = 0;i < chars.length;i++){char cur = chars[i];if(cur == 'R'){if(flag)Rnumber++;if(curBanR == 0){curBanD++;totalBanD++;//这个!flag就表示不是第一次遍历了,这个时候的totalBanD or R是准确的人数if(totalBanD == Dnumber  && !flag)return "Radiant";}else{curBanR--;chars[i] = 'r';}}else if(cur == 'D'){if(flag)Dnumber++;if(curBanD == 0){curBanR++;totalBanR++;if(totalBanR == Rnumber  && !flag)return "Dire";}else{curBanD--;chars[i] = 'd';}}}flag = false;if(totalBanD >= Dnumber)return "Radiant";if(totalBanR >= Rnumber)return "Dire";}}}

Dota2 参议院java相关推荐

  1. 力扣649. Dota2参议院 (Java 详细题解)

    649. Dota2 参议院 一.原题题目(中等) 1.1 题目 ​ Dota2 的世界里有两个阵营:Radiant (天辉)和 Dire(夜魇).Dota2 参议院由来自两派的参议员组成.现在参议院 ...

  2. Java实现 LeetCode 649 Dota2 参议院(暴力大法)

    649. Dota2 参议院 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成.现在参议院希望对一个 Dota2 游戏里的改变作出决 ...

  3. 代码随想录——Dota2参议院

    题目 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成.现在参议院希望对一个 Dota2 游戏里的改变作出决定.他们以一个基于轮为过 ...

  4. Leetcode 649.Dota2参议院

    Dota2参议院 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成.现在参议院希望对一个 Dota2 游戏里的改变作出决定.他们以一 ...

  5. Dota2参议院[贪心与队列]

    贪心与队列 前言 一.dota2参议院 二.贪心与队列 总结 参考文献 前言 贪心思想 与 队列数据结构的配合,算法题往往就是这样,一种思想配一些数据结构来完美解题. 一.dota2参议院 二.贪心与 ...

  6. [Swift]LeetCode649. Dota2 参议院 | Dota2 Senate

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  7. 贪心 - Dota2 参议院

    Dota2 参议院 贪心+循环队列 对于当前参议院来说,他的最优选择是禁止下一个最先出现的敌方参议员,这样才能保证己方参议院的安全. 具体的实现采用循环队列. class Solution {publ ...

  8. leetcode 649. Dota2 参议院(贪心算法)

    Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成.现在参议院希望对一个 Dota2 游戏里的改变作出决定.他们以一个基于轮为过程的投 ...

  9. LeetCode 649. Dota2 参议院(循环队列)

    文章目录 1. 题目 2. 解题 1. 题目 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成.现在参议院希望对一个 Dota2 游 ...

最新文章

  1. 编写优质代码的 6 大关键方法
  2. 中原银行张本晨:中原银行数字化营销体系建设实践
  3. void和void*详解 v2
  4. 《走遍中国》珍藏版(十二)
  5. 用C#实现软件自动更新
  6. wamp xampp mysql端口冲突_解决xampp端口冲突
  7. Python中使用xpath获取Scrtpt里面的内容
  8. SQL Server查询执行计划–基础
  9. 恭喜您被选为CSDN插件内测用户:点此领取福利
  10. MySQL批处理SQL语句
  11. 博文内部设置目录尝试
  12. python使用什么来体现代码之间的逻辑关系,Python使用缩进来体现代码之间的逻辑关系。...
  13. java date the type is ambiguous_一个java ambiguous method 的问题
  14. 2021-09-14TL431与LM317的区别
  15. windowsXP sp2 to sp3 的升级包
  16. JetBrain 系列软件快捷键集合
  17. oracle销售订单导入错误,通过传XML格式导入到ORACLE的销售订单
  18. MTK平台Metadata的加载(4)—Q版本后
  19. CS269I:Incentives in Computer Science 学习笔记 Lecture 17 评分规则和同辈预测(诚实预报和反馈激励)
  20. 2. TortoiseGit安装与配置

热门文章

  1. 图像标注平台搭建之cvat
  2. linux性能优化实战 倪朋飞,Linux性能优化实战:系统的swap变高(09)
  3. 今天的但是我的小邻居蜡笔小新
  4. web之CSS基础指南
  5. LeetCode·每日一题·782.变为棋盘·数学
  6. 川大计算机考研学硕难调剂吗,2018年川大软件工程学硕考研心得
  7. Linux例行性工作之系统配置文件(用户级crontab -e与系统级/etc/crontab)
  8. 福布斯2007中国富豪榜出炉 杨惠妍26岁成首富
  9. 软考-信息管理——学习笔记_证
  10. 程序员快速阅读,绝对不是神话