LeetCode——LCP 29. 乐团站位[简单]——分析及代码(Java)
LeetCode——LCP 29. 乐团站位[简单]——分析及代码[Java]
- 一、题目
- 二、分析及代码
- 1. 直接计算
- (1)思路
- (2)代码
- (3)结果
- 三、其他
一、题目
某乐团的演出场地可视作 num * num 的二维矩阵 grid(左上角坐标为 [0,0]),每个位置站有一位成员。乐团共有 9 种乐器,乐器编号为 1~9,每位成员持有 1 个乐器。
为保证声乐混合效果,成员站位规则为:自 grid 左上角开始顺时针螺旋形向内循环以 1,2,…,9 循环重复排列。
请返回位于场地坐标 [Xpos,Ypos] 的成员所持乐器编号。
示例 1:
输入:num = 3, Xpos = 0, Ypos = 2
输出:3
示例 2:
输入:num = 4, Xpos = 1, Ypos = 2
输出:5
提示:
- 1 <= num <= 10^9
- 0 <= Xpos, Ypos < num
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/SNJvJP
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
二、分析及代码
1. 直接计算
(1)思路
先确定成员所在的圈数,然后结合数学方法计算得到该圈左上角的起始值,再判断成员所在的边,计算得到乐器编号。
(2)代码
class Solution {public int orchestraLayout(int num, int xPos, int yPos) {//确定成员在第round圈int xRound = Math.min(xPos + 1, num - xPos);int yRound = Math.min(yPos + 1, num - yPos);int round = Math.min(xRound, yRound);int len = num - 1;//当前圈边的长度//确定成员所在圈左上角起始值long start = 1L;start = (start + (len - round + 2L) * (round - 1L) * 4L) % 9L;len -= ((round - 1) * 2);//确定成员乐器编号int ans;if (xPos + 1 == round) {//成员在上边ans = (int)((start + yPos + 1 - round) % 9);} else if (num - yPos == round){//成员在右边start = (start + (len % 9)) % 9;ans = (int)((start + xPos + 1 - round) % 9);} else if (num - xPos == round){//成员在下边start = (start + (len % 9) * 2) % 9;ans = (int)((start + num - round - yPos) % 9);} else {//成员在左边start = (start + (len % 9) * 3) % 9;ans = (int)((start + num - round - xPos) % 9);}return (ans == 0) ? 9 : ans;//也可将start初始值设置为0,返回ans%9+1}
}
(3)结果
执行用时 :0 ms,在所有 Java 提交中击败了 100.00% 的用户;
内存消耗 :34.9 MB,在所有 Java 提交中击败了 96.57% 的用户。
三、其他
暂无。
LeetCode——LCP 29. 乐团站位[简单]——分析及代码(Java)相关推荐
- LeetCode LCP 29. 乐团站位(数学 等差数列)
文章目录 1. 题目 2. 解题 2.1 模拟超时 2.2 优化通过 1. 题目 某乐团的演出场地可视作 num * num 的二维矩阵 grid(左上角坐标为 [0,0]),每个位置站有一位成员. ...
- LeetCode LCP 29. 乐团站位
力扣 解题思路: 参考 Deeemo 1.第一步定位给定的坐标所在的层数:round = min(xPos, num - 1 - xPos, yPos, nums - 1 - yPos) 2.根 ...
- LCP 29. 乐团站位(leetcode)
完成时间:2021年6月22日 ps:你敢相信,这道题是简单题?我废了 写这篇完全是纪念今天的辣子鸡和今天我用费的时光 题目:https://leetcode-cn.com/problems/SNJv ...
- 【leetcode-Python】-找数学规律-LCP 29. 乐团站位
题目链接 https://leetcode-cn.com/problems/SNJvJP/ 题目描述 某乐团的演出场地可视作 num * num 的二维矩阵 grid(左上角坐标为 [0,0]),每个 ...
- LCP 29. 乐团站位
题目链接:https://leetcode-cn.com/problems/SNJvJP/ 思路:先算出(xPos,yPos)在第几层,然后再算出他在当前层的位置(上下左右),通过层数(不加上他在的那 ...
- LeetCode—494. 目标和(Target Sum)——分析及代码(Java)
LeetCode-494. 目标和[Target Sum]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划 (1)思路 (2)代码 (3)结果 2. 动态规划+节省空间 (1)思路 ...
- LeetCode—55.跳跃游戏(Jump Game)——分析及代码(C++)
LeetCode-55.跳跃游戏[Jump Game]--分析及代码[C++] 一.题目 二.分析及代码 1. 贪心 (1)思路 (2)代码(简洁) (3)代码(高效) (4)结果 三.其他 一.题目 ...
- leetcode 29.乐团站位(蛇形矩阵)
某乐团的演出场地可视作 num * num 的二维矩阵 grid(左上角坐标为 [0,0]),每个位置站有一位成员.乐团共有 9 种乐器,乐器编号为 1~9,每位成员持有 1 个乐器. 为保证声乐混合 ...
- python中“羊车门问题”的简单分析与代码实现
1."羊车门问题"题目及要求. 2.问题的数学逻辑分析. 3.python代码分析出换和不换的概率. "羊车门问题"题目及要求: 有三扇关着的门,一扇门后面停着 ...
最新文章
- 练习题3(求四位会员卡号之和)
- 【摘录】Ics4.0如何去除系统的状态栏
- 50个Android开发人员必备UI效果源码[转载]
- php 循环向select添加选项
- hibernate createsqlquery delete多个表_go语言教程哪里有?xorm表基本操作及高级操作...
- 核心概念——节点/边/Combo——内置节点——Diamond
- shell编程之随机数和嵌套循环
- SAP CRM里使用BAdI阻止产品主数据保存的一种办法
- Qt实现Word文档界面样式--QtitanRibbon
- linux mysql管理软件_8款适合Linux用户使用的数据库管理工具!
- Java 14 中令人期待的五大新特性!
- 深圳联通与深圳中琛源科技正式达成了5Gn战略合作
- 软件使用-如何卸载360安全客户端
- “指付通”还是“支付痛”?-【软件和信息服务】2014.10
- Unity学习资源(超全)汇总 基础+项目+进阶+面试
- 电脑断电word文档不见了恢复
- 计算机在保险的应用,浅谈计算机信息系统在医疗保险中的应用
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数001·3D函数
- 网络攻击与防御-常用网络命令的使用
- C++实现坦克大战(超详细)(文末附源码!!!)