LeetCode75——Day28

2023-11-07 08:44
文章标签 day28 leetcode75

本文主要是介绍LeetCode75——Day28,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 一、题目
    • 二、题解

一、题目

649. Dota2 Senate

In the world of Dota2, there are two parties: the Radiant and the Dire.

The Dota2 senate consists of senators coming from two parties. Now the Senate wants to decide on a change in the Dota2 game. The voting for this change is a round-based procedure. In each round, each senator can exercise one of the two rights:

Ban one senator’s right: A senator can make another senator lose all his rights in this and all the following rounds.
Announce the victory: If this senator found the senators who still have rights to vote are all from the same party, he can announce the victory and decide on the change in the game.
Given a string senate representing each senator’s party belonging. The character ‘R’ and ‘D’ represent the Radiant party and the Dire party. Then if there are n senators, the size of the given string will be n.

The round-based procedure starts from the first senator to the last senator in the given order. This procedure will last until the end of voting. All the senators who have lost their rights will be skipped during the procedure.

Suppose every senator is smart enough and will play the best strategy for his own party. Predict which party will finally announce the victory and change the Dota2 game. The output should be “Radiant” or “Dire”.

Example 1:

Input: senate = “RD”
Output: “Radiant”
Explanation:
The first senator comes from Radiant and he can just ban the next senator’s right in round 1.
And the second senator can’t exercise any rights anymore since his right has been banned.
And in round 2, the first senator can just announce the victory since he is the only guy in the senate who can vote.
Example 2:

Input: senate = “RDD”
Output: “Dire”
Explanation:
The first senator comes from Radiant and he can just ban the next senator’s right in round 1.
And the second senator can’t exercise any rights anymore since his right has been banned.
And the third senator comes from Dire and he can ban the first senator’s right in round 1.
And in round 2, the third senator can just announce the victory since he is the only guy in the senate who can vote.

Constraints:

n == senate.length
1 <= n <= 104
senate[i] is either ‘R’ or ‘D’.

二、题解

class Solution {
public:string predictPartyVictory(string senate) {int n = senate.size();queue<int> 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";}
};

这篇关于LeetCode75——Day28的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/362498

相关文章

算法打卡 Day28(回溯算法)-组合总数 + 组合总数 Ⅱ+ 电话号码的字母组合

文章目录 Leetcode 17-电话号码的字母组合题目描述解题思路 Leetcode 39-组合总数题目描述解题思路 Leetcode 216-组合总数 Ⅲ题目描述解题思路 Leetcode 17-电话号码的字母组合 题目描述 https://leetcode.cn/problems/letter-combinations-of-a-phone-number/descrip

【MySQL_JDBC】Day23-Day28 数据库基础、JDBC基础、聊天室3.0

数据库 数据库基本概念 数据库DataBase 定义: 保存数据的仓库就称为数据库 例如 编写一个用户管理系统,可以让用户在我们编写的系统上进行注册等操作,此时就涉及到了保存用户数据的操作,目前我们的做法可以将一个用户信息以一个User对象形式表示,然后利用IO知识中的文件流与对象流将对象序列化都写入XXX.obj文件中保存。当有大量的obj文件后,可以使用一个专门的目录"users"

Java学习日记(day28)

一、EL表达式 目的就是去掉JSP中的Java代码,都是以标签的形式表示,以标签的形式美工或者前端都可以修改,利于团队的合作。这套标签和Java语言无关。 JSP核心语法:JSP表达式 JSP脚本 JSP开发的原则:尽量在JSP页面少写甚至不写Java代码,Java代码放在Servlet。 使用EL表达式来代替JSP表达式 EL表达式的作用:向浏览器输出域对象(只能输出域对象)的变量或者

【JAVA入门】Day28 - 数据结构

【JAVA入门】Day28 - 数据结构 文章目录 【JAVA入门】Day28 - 数据结构一、栈二、队列三、数组3.1 ArrayList 四、链表4.1 LinkedList 五、二叉树5.1 二叉查找树5.2 二叉树的遍历方式5.3 平衡二叉树5.4 平衡二叉树的旋转5.5 平衡二叉树需要旋转的几种情况 六、红黑树6.1 红黑规则6.2 红黑树添加节点的规则

代码随想录算法训练营day28 | 贪心算法 | 122.买卖股票的最佳时机 II、55.跳跃游戏、45.跳跃游戏 II、1005.K次取反后最大化的数组和

文章目录 122.买卖股票的最佳时机 II思路 55.跳跃游戏思路解法1解法2 45.跳跃游戏 II思路 1005.K次取反后最大化的数组和思路 总结 今天是贪心算法专题的第二天,直接上题目 122.买卖股票的最佳时机 II 题目链接:122. 买卖股票的最佳时机 II - 力扣(LeetCode) 思路 思想很简单:把所有的涨幅都赚到,把所有的跌幅都躲过,最后就能获

【算法训练记录——Day28】

Day28——回溯算法Ⅳ 1.复原IP地址2.[全排列](https://leetcode.cn/problems/permutations/submissions/539240290/)3.[全排列Ⅱ](https://leetcode.cn/problems/permutations-ii/description/) ● 93.复原IP地址 ● 78.子集 ● 90.子集

二刷算法训练营Day28 | 回溯算法(4/6)

目录 详细布置: 1. 93. 复原 IP 地址 2. 78. 子集 3. 90. 子集 II 详细布置: 1. 93. 复原 IP 地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.24

day28回溯算法part04| 93.复原IP地址 78.子集 90.子集II

**93.复原IP地址 ** 本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了 题目链接/文章讲解 | 视频讲解 class Solution {public:vector<string> result;// pointNum记录加入的点的数量,其等于3的时候停止void backtracking(string& s, int startindex, int po

【代码随想录算法训练Day28】LeetCode 93. 复原 IP 地址、LeetCode 78.子集、LeetCode 90.子集II

93.复原IP地址 使用和分割回文串同样的思路,以 ' . ' 分割字符串,以 start 作为截取的子串的开始位置,i 作为子串的结束位置,单层递归的逻辑就是判断这个子串是否符合ip地址的要求。 正常应采取检验,排除所有非法情况,比如下面这段代码。 // 判断字符串s在左闭又闭区间[start, end]所组成的数字是否合法bool isValid(const string& s, in

代码随想录算法训练Day28|LeetCode93-复原IP地址、LeetCode78-子集问题、LeetCode90-子集2

复原IP地址 题目描述 力扣93-复原IP地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效 IP 地址。 给定一个