题目

你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为 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简单题之拆炸弹相关推荐

  1. LeetCode简单题之基于排列构建数组

    题目 给你一个 从 0 开始的排列 nums(下标也从 0 开始).请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans ...

  2. LeetCode简单题之Excel 表中某个范围内的单元格

    题目 Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中: 即单元格的列号 c .用英文字母表中的 字母 标识. 例如,第 1 列用 'A' 表示, ...

  3. LeetCode简单题之增量元素之间的最大差值

    题目 给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 ...

  4. LeetCode简单题之二进制矩阵中的特殊位置

    题目 给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 . 特殊位置 定义:如果 mat[i][j] == 1 ...

  5. LeetCode简单题之设计 Goal 解析器

    题目 请你设计一个可以解释字符串 command 的 Goal 解析器 .command 由 "G"."()" 和/或 "(al)" 按某种 ...

  6. LeetCode简单题之检查两个字符串数组是否相等

    题目 给你两个字符串数组 word1 和 word2 .如果两个数组表示的字符串相同,返回 true :否则,返回 false . 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串. ...

  7. LeetCode简单题之找出数组的最大公约数

    题目 给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数 . 两个数的 最大公约数 是能够被两个数整除的最大正整数. 示例 1: 输入:nums = [2,5,6,9,10] 输出: ...

  8. LeetCode简单题之排列硬币

    题目 你总共有 n 枚硬币,并计划将它们按阶梯状排列.对于一个由 k 行组成的阶梯,其第 i 行必须正好有 i 枚硬币.阶梯的最后一行 可能 是不完整的. 给你一个数字 n ,计算并返回可形成 完整阶 ...

  9. LeetCode简单题之棒球比赛

    题目 你现在是一场采用特殊赛制棒球比赛的记录员.这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分. 比赛开始时,记录是空白的.你会得到一个记录操作的字符串列表 ops,其中 ops[ ...

最新文章

  1. hadoop的HDFS-----防火墙导致9870端口无法访问
  2. python语法错误怎么办_Python中“函数外返回”语法错误的原因?
  3. html5离开网页自动暂停,通过html5代码在网页中实现播放和暂停音乐mp3,mav等文
  4. JavaMail(四):接收邮件
  5. 数据结构专题(一):1.2.求元素个数,取元素与定位
  6. 机器学习交易——如何使用回归预测股票价格?【翻译】
  7. php5框架,Thinkphp5.1框架
  8. 毕业七年 摸爬滚打的心得体会
  9. 清华软件工程硕士放弃百万年薪后,4年狂赚1100亿,却被央视点名批评!
  10. 计算机硬盘坏道解决办法
  11. Power Builder软件的下载安装
  12. 如何选择白盒测试工具
  13. DedeCMS总是提示验证码不正确的解决方法
  14. 关闭idea任务栏小图标
  15. 工作中常用的英文单词缩写
  16. 【SEED Labs 2.0】Packet Sniffing and Spoofing Lab
  17. 【React】做一个百万答题小项目
  18. 「微服务架构」基于NGINX的三种微服务参考架构
  19. 方程sin平方x-x平方+1=0的有根区间?
  20. 移动通信技术发展历程及未来趋势

热门文章

  1. 2022-2028年中国铪行业市场研究及前瞻分析报告
  2. Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)
  3. 二叉树中和为某一值的路径
  4. 关于python导入模块和package的一些深度思考
  5. 解决git本地提交不到远程库
  6. LLVM语法语义指令特性
  7. AI+IoT+电池应用
  8. 使嵌入式系统调试更容易:有用的硬件和软件提示
  9. 2021年大数据Flink(三十七):​​​​​​​Table与SQL ​​​​​​案例四
  10. Android 人民币符号在布局中实现的效果不一样的处理方法