LeetCode简单题之圆形赛道上经过次数最多的扇区

news/2024/11/20 9:21:29/

题目

给你一个整数 n 和一个整数数组 rounds 。有一条圆形赛道由 n 个扇区组成,扇区编号从 1 到 n 。现将在这条赛道上举办一场马拉松比赛,该马拉松全程由 m 个阶段组成。其中,第 i 个阶段将会从扇区 rounds[i - 1] 开始,到扇区 rounds[i] 结束。举例来说,第 1 阶段从 rounds[0] 开始,到 rounds[1] 结束。
请你以数组形式返回经过次数最多的那几个扇区,按扇区编号 升序 排列。
注意,赛道按扇区编号升序逆时针形成一个圆(请参见第一个示例)。
示例 1:
在这里插入图片描述

输入:n = 4, rounds = [1,3,1,2]
输出:[1,2]
解释:本场马拉松比赛从扇区 1 开始。经过各个扇区的次序如下所示:
1 --> 2 --> 3(阶段 1 结束)–> 4 --> 1(阶段 2 结束)–> 2(阶段 3 结束,即本场马拉松结束)
其中,扇区 1 和 2 都经过了两次,它们是经过次数最多的两个扇区。扇区 3 和 4 都只经过了一次。
示例 2:
输入:n = 2, rounds = [2,1,2,1,2,1,2,1,2]
输出:[2]
示例 3:
输入:n = 7, rounds = [1,3,5,7]
输出:[1,2,3,4,5,6,7]
提示:
2 <= n <= 100
1 <= m <= 100
rounds.length == m + 1
1 <= rounds[i] <= n
rounds[i] != rounds[i + 1] ,其中 0 <= i < m
来源:力扣(LeetCode)

解题思路

  这个题可以进行模拟,每次经过相应的扇区我们计数即可。

class Solution:def mostVisited(self, n: int, rounds: List[int]) -> List[int]:MAX=0d=Counter()for i in range(1,len(rounds)): #模拟跑道情况current=rounds[i-1]while current!=rounds[i]:d[current]+=1current=current%n+1if MAX<d[current]:MAX=d[current]d[rounds[-1]]+=1  #最后一个扇区没有计入if MAX<d[rounds[-1]]:MAX=d[rounds[-1]]temp=[]  #找出最大的经过次数的扇区for i,j in d.items():if j==MAX:temp.append(i)return sorted(temp)  #按扇区号顺序返回结果

在这里插入图片描述


http://www.ppmy.cn/news/605669.html

相关文章

LeetCode简单题之最小绝对差

题目 给你个整数数组 arr&#xff0c;其中每个元素都 不相同。 请你找到所有具有最小绝对差的元素对&#xff0c;并且按升序的顺序返回。 示例 1&#xff1a; 输入&#xff1a;arr [4,2,1,3] 输出&#xff1a;[[1,2],[2,3],[3,4]] 示例 2&#xff1a; 输入&#xff1a;arr […

合肥工业大学—SQL Server数据库实验十:用户及其权限管理

用户及其权限管理1. 创建登录名Mylog及密码2. 创建用户user2关联登录名3. 创建角色role14. 对用户user2及角色role1授权5. 验证用户授权6. 收回用户权限1. 创建登录名Mylog及密码 create login Mylog with password1234562. 创建用户user2关联登录名 -- 创建一个EDUC数据库用…

LeetCode简单题之二叉树中第二小的节点

题目 给定一个非空特殊的二叉树&#xff0c;每个节点都是正数&#xff0c;并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话&#xff0c;那么该节点的值等于两个子节点中较小的一个。 更正式地说&#xff0c;即 root.val min(root.left.val, root.right…

pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法

squeeze的用法主要就是对数据的维度进行压缩或者解压。 先看torch.squeeze() 这个函数主要对数据的维度进行压缩&#xff0c;去掉维数为1的的维度&#xff0c;比如是一行或者一列这种&#xff0c;一个一行三列&#xff08;1,3&#xff09;的数去掉第一个维数为一的维度之后就变…

VS Code搭建C/C++开发环境超详细教程

目录一、下载配置MinGW1. 下载解压 MinGW2. 配置环境变量3. 测试是否配置成功二、安装 C/C 插件三、第一个程序四、相关插件推荐1. Visual Studio IntelliCode2. Code Runner一、下载配置MinGW 1. 下载解压 MinGW 下载地址&#xff1a;https://sourceforge.net/projects/mingw…

SWT Image 和ImageData的相互转换

ImageData 转 Image //arcPiclocate图片绝对路径 ImageData data new ImageData(arcPiclocate); Image image1 new Image(null, data); //或者 Display display Display.getCurrent(); Image image1 new Image(display , data); Image 转 ImageData 使用getImageData()方…

centos7 挂载未分配的空间新增卷

一、系统环境 操作系统&#xff1a;Centos 7 已配置环境&#xff1a;空 二、磁盘挂载到新目录&#xff08;磁盘挂载&#xff09; 2.1 查找新硬盘 查看机器所挂硬盘及分区情况&#xff1a; fdisk -l 复制 红框圈中的即是本次要挂载的磁盘&#xff0c;与 /dev/sda 和 /de…

LeetCode简单题之重新格式化电话号码

题目 给你一个字符串形式的电话号码 number 。number 由数字、空格 ’ 、和破折号 ‘-’ 组成。 请你按下述方式重新格式化电话号码。 首先&#xff0c;删除 所有的空格和破折号。 其次&#xff0c;将数组从左到右 每 3 个一组 分块&#xff0c;直到 剩下 4 个或更少数字。剩下…