当前位置: 首页 > news >正文

闯关leetcode——3178. Find the Child Who Has the Ball After K Seconds

大纲

  • 题目
    • 地址
    • 内容
  • 解题
    • 代码地址

题目

地址

https://leetcode.com/problems/find-the-child-who-has-the-ball-after-k-seconds/description/

内容

You are given two positive integers n and k. There are n children numbered from 0 to n - 1 standing in a queue in order from left to right.

Initially, child 0 holds a ball and the direction of passing the ball is towards the right direction. After each second, the child holding the ball passes it to the child next to them. Once the ball reaches either end of the line, i.e. child 0 or child n - 1, the direction of passing is reversed.

Return the number of the child who receives the ball after k seconds.

Example 1:

Input: n = 3, k = 5
Output: 1
Explanation:

Time elapsedChildren
0[0, 1, 2]
1[0, 1, 2]
2[0, 1, 2]
3[0, 1, 2]
4[0, 1, 2]
5[0, 1, 2]

Example 2:

Input: n = 5, k = 6
Output: 2
Explanation:

Time elapsedChildren
0[0, 1, 2, 3, 4]
1[0, 1, 2, 3, 4]
2[0, 1, 2, 3, 4]
3[0, 1, 2, 3, 4]
4[0, 1, 2, 3, 4]
5[0, 1, 2, 3, 4]
6[0, 1, 2, 3, 4]

Example 3:

Input: n = 4, k = 2
Output: 2
Explanation:

Time elapsedChildren
0[0, 1, 2, 3]
1[0, 1, 2, 3]
2[0, 1, 2, 3]

Constraints:

  • 2 <= n <= 50
  • 1 <= k <= 50

解题

这题就是要求在一个长度为n的数组中,沿着一个方向移动下标k次(碰到边界就反向)后,下标所在的位置。
我们首先将一个链表想象成一个环状(如下图)。这样元素个数是2*n-2个。
k % (2 * n - 2)可以得出移动k次后,会落到哪个元素上。
如果落在蓝色节点上,则直接返回。
如果落在绿色节点上,则需要做个计算。(x - (n - 1))可以算出下标移动到最右侧节点(比如下图中的3)后,还要移动几次(假设是m次)。从右向左移动m次,相当于从左边第一个节点(0)向右移动n -1 -m次——n - 1 - (x - (n - 1))

在这里插入图片描述

class Solution {
public:int numberOfChild(int n, int k) {auto x = k % (2 * n - 2) ;if (x < n) {return x;} else {return n - 1 - (x  - (n - 1));}}
};

在这里插入图片描述

代码地址

https://github.com/f304646673/leetcode/tree/main/3178-Find-the-Child-Who-Has-the-Ball-After-K-Seconds/cplusplus


http://www.mrgr.cn/news/75152.html

相关文章:

  • Hadoop学习--第一章 Hello大数据分布式
  • 基于深度学习的路面裂缝检测算法matlab仿真
  • FFMPEG录屏(22)--- Linux 下基于X11枚举所有显示屏,并获取大小和截图等信息
  • 无人机飞手执照处处需要,森林、石油管道、电力巡检等各行业都需要
  • 论文阅读《机器人状态估计中的李群》
  • Go语言开发基于SQLite数据库实现用户表查询详情接口(三)
  • docker安装到D盘
  • 游戏引擎学习第11天
  • 易考八股文之代理模式在AOP中如何应用?
  • Gartner发布XDR扩展检测和响应市场指南:XDR需要具备的19项功能
  • 逆向攻防世界CTF系列31-elrond32
  • 代码随想录算法训练营第46天 | 647. 回文子串、516.最长回文子序列
  • curl 安装最新版
  • 如何在手机上完整下载B站视频并保存到相册?
  • 制造业数字化转型路线图,终于有人捋清楚了
  • 用哈希表封装myunordered_map/_set--C++
  • 《Python网络安全项目实战》项目5 编写网站扫描程序
  • 20241113下载安装虚拟桌面工具VYSOR并连接中科创达的高通CM6125开发板
  • 深入理解ECDSA:椭圆曲线数字签名算法的原理与应用
  • 算法基础 -- 红黑树原理与插入伪代码
  • SpringCloud框架学习(第三部分:Resilience4j 与 Micrometer)
  • 关于我重生到21世纪学C语言这件事——指针详解(1)
  • 【计算机网络】Socket编程接口
  • 【MinIO】Python 运用 MinIO 实现简易文件系统
  • WLAN消失或者已连接但是访问不了互联网
  • SpringSecurity+jwt+captcha登录认证授权总结