LeetCode简单题之拆炸弹
题目
你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k 。
为了获得正确的密码,你需要替换掉每一个数字。所有数字会 同时 被替换。
如果 k > 0 ,将第 i 个数字用 接下来 k 个数字之和替换。
如果 k < 0 ,将第 i 个数字用 之前 k 个数字之和替换。
如果 k == 0 ,将第 i 个数字用 0 替换。
由于 code 是循环的, code[n-1] 下一个元素是 code[0] ,且 code[0] 前一个元素是 code[n-1] 。
给你 循环 数组 code 和整数密钥 k ,请你返回解密后的结果来拆除炸弹!
示例 1:
输入:code = [5,7,1,4], k = 3
输出:[12,10,16,13]
解释:每个数字都被接下来 3 个数字之和替换。解密后的密码为 [7+1+4, 1+4+5, 4+5+7, 5+7+1]。注意到数组是循环连接的。
示例 2:
输入:code = [1,2,3,4], k = 0
输出:[0,0,0,0]
解释:当 k 为 0 时,所有数字都被 0 替换。
示例 3:
输入:code = [2,4,9,3], k = -2
输出:[12,5,6,13]
解释:解密后的密码为 [3+9, 2+3, 4+2, 9+4] 。注意到数组是循环连接的。如果 k 是负数,那么和为 之前 的数字。
提示:
n == code.length
1 <= n <= 100
1 <= code[i] <= 100
-(n - 1) <= k <= n - 1
来源:力扣(LeetCode)
解题思路
这个题主要想考察的是循环数组的访问,对于循环数的计算是数论里一个比较基础的内容,在循环队列中多出现这种循环访问。在这个题中我们只需要按照要求对code中的每个元素逐一修改即可。注:修改后的元素不参加新的运算,所以需要新开辟空间存放答案。
class Solution:def decrypt(self, code: List[int], k: int) -> List[int]:n=len(code)CODE=[0]*nif k==0:return CODEelif k>0:for i in range(n):s=0for j in range(k):s+=code[(i+j+1)%n]CODE[i]=selse:for i in range(n):s=0for j in range(-k):s+=code[(i+n-j-1)%n]CODE[i]=sreturn CODE
LeetCode简单题之拆炸弹相关推荐
- LeetCode简单题之基于排列构建数组
题目 给你一个 从 0 开始的排列 nums(下标也从 0 开始).请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans ...
- LeetCode简单题之Excel 表中某个范围内的单元格
题目 Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中: 即单元格的列号 c .用英文字母表中的 字母 标识. 例如,第 1 列用 'A' 表示, ...
- LeetCode简单题之增量元素之间的最大差值
题目 给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 ...
- LeetCode简单题之二进制矩阵中的特殊位置
题目 给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 . 特殊位置 定义:如果 mat[i][j] == 1 ...
- LeetCode简单题之设计 Goal 解析器
题目 请你设计一个可以解释字符串 command 的 Goal 解析器 .command 由 "G"."()" 和/或 "(al)" 按某种 ...
- LeetCode简单题之检查两个字符串数组是否相等
题目 给你两个字符串数组 word1 和 word2 .如果两个数组表示的字符串相同,返回 true :否则,返回 false . 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串. ...
- LeetCode简单题之找出数组的最大公约数
题目 给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数 . 两个数的 最大公约数 是能够被两个数整除的最大正整数. 示例 1: 输入:nums = [2,5,6,9,10] 输出: ...
- LeetCode简单题之排列硬币
题目 你总共有 n 枚硬币,并计划将它们按阶梯状排列.对于一个由 k 行组成的阶梯,其第 i 行必须正好有 i 枚硬币.阶梯的最后一行 可能 是不完整的. 给你一个数字 n ,计算并返回可形成 完整阶 ...
- LeetCode简单题之棒球比赛
题目 你现在是一场采用特殊赛制棒球比赛的记录员.这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分. 比赛开始时,记录是空白的.你会得到一个记录操作的字符串列表 ops,其中 ops[ ...
最新文章
- hadoop的HDFS-----防火墙导致9870端口无法访问
- python语法错误怎么办_Python中“函数外返回”语法错误的原因?
- html5离开网页自动暂停,通过html5代码在网页中实现播放和暂停音乐mp3,mav等文
- JavaMail(四):接收邮件
- 数据结构专题(一):1.2.求元素个数,取元素与定位
- 机器学习交易——如何使用回归预测股票价格?【翻译】
- php5框架,Thinkphp5.1框架
- 毕业七年 摸爬滚打的心得体会
- 清华软件工程硕士放弃百万年薪后,4年狂赚1100亿,却被央视点名批评!
- 计算机硬盘坏道解决办法
- Power Builder软件的下载安装
- 如何选择白盒测试工具
- DedeCMS总是提示验证码不正确的解决方法
- 关闭idea任务栏小图标
- 工作中常用的英文单词缩写
- 【SEED Labs 2.0】Packet Sniffing and Spoofing Lab
- 【React】做一个百万答题小项目
- 「微服务架构」基于NGINX的三种微服务参考架构
- 方程sin平方x-x平方+1=0的有根区间?
- 移动通信技术发展历程及未来趋势
热门文章
- 2022-2028年中国铪行业市场研究及前瞻分析报告
- Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)
- 二叉树中和为某一值的路径
- 关于python导入模块和package的一些深度思考
- 解决git本地提交不到远程库
- LLVM语法语义指令特性
- AI+IoT+电池应用
- 使嵌入式系统调试更容易:有用的硬件和软件提示
- 2021年大数据Flink(三十七):​​​​​​​Table与SQL ​​​​​​案例四
- Android 人民币符号在布局中实现的效果不一样的处理方法