初学python记录:力扣1652. 拆炸弹

题目:

你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为 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 ,请你返回解密后的结果来拆除炸弹!

提示:

  • n == code.length
  • 1 <= n <= 100
  • 1 <= code[i] <= 100
  • -(n - 1) <= k <= n - 1

思考:

当k=0时,直接返回全为0的数组;当k>0或者k<0时,每个元素都由其他的k个元素之和代替,很容易想到用滑动窗口解决,每次减去滑动窗口里的第一个元素(索引设为left),加上窗口后的第一个元素(索引设为right),即为当前元素更新的值。

另外要注意当left或right更新到越过数组边界时,需要重新设为0(因为数组code是循环数组),避免数组越界。代码如下:

class Solution:def decrypt(self, code: List[int], k: int) -> List[int]:n = len(code)ans = []if k == 0:return [0 for _ in range(n)]elif k > 0:left = 1right = kelif k < 0:left = n + kright = n - 1window = sum(code[left:right+1])   # 初始化滑动窗口for i in range(n):ans.append(window)right += 1if right == n:right = 0window = window - code[left] + code[right]left += 1if left == n:left = 0return ans

提交通过:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/8554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JUC下的ScheduledThreadPoolExecutor详解

ScheduledThreadPoolExecutor是Java并发编程框架中一个强大且灵活的线程池实现&#xff0c;专为定时与周期性任务而设计。作为ThreadPoolExecutor的子类&#xff0c;它不仅继承了线程池管理的高效与灵活性&#xff0c;还内置了基于优先级队列的延迟任务调度机制&#xff0c;支持…

将一层的json转成拼接的query字符串

方法: 封装方法手写利用第三方库 qs利用浏览器api- URLSearchParams 记录一下URLSearchParams const a new URLSearchParams({bar:foo,foo:20}) a.toString() // barfoo&foo20

基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真。基于模糊PI控制算法的龙格-库塔&#xff08;Runge-Kutta, RK&#xff09;连续搅拌釜反应器&#xff08;Co…

景源畅信电商:抖音小店需要请专业人员装修店铺吗?

在数字营销的海洋中&#xff0c;抖音小店如一艘航船&#xff0c;装修得当才能吸引顾客登船。那么&#xff0c;小店是否需要请专业人员来装修呢?答案是肯定的。 一、视觉冲击力是关键 专业设计师擅长运用色彩、布局与图像创造出强烈的视觉冲击力&#xff0c;这对于抓住用户的注…

费用报销(01背包

题目 #include<bits/stdc.h> using namespace std; #define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) int n,m,k; struct node {int m,d,v; }a[1007]; int mon[13]{0,31,28,31,30,31,30,31,31,30,31,30,31}; int dp[1007][2],mm[13],mx; map<int,int…

2024vue官方生态最全整理

👩 个人主页:程序媛夏天 🙋‍♂️ 作者简介:前端领域新星创作者、CSDN内容合伙人、自媒体职场博主,专注于前端各领域技术,成长的路上共同学习共同进步,一起加油呀! ✨系列专栏:前端面试宝典、JavaScript进阶、vue实战 📢 资料领取:前端进阶资料以及文中源码可以在…

【四、性能测试】性能测试基础与几个重要的概念

你好&#xff0c;我是山茶&#xff0c;一个95后在职程序员。也是一个目标跟 1000 程序员探索出 AI 测试 副业之路的 bro&#xff0c;欢迎跟我一起沟通交流&#xff01; 一、什么是性能测试&#xff1f; 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来…

【Linux——Centos7安装RabbitMQ】 RabbitMQ无法连接

到这一步是基本已经装好了&#xff0c;现在是在开放端口&#xff0c;我这个报错是因为我的防火墙是处于关闭状态&#xff0c;所以在开放端口时会报防火墙为运行&#xff0c;把防火墙打开&#xff0c;在开放端口&#xff0c;就可以访问到了 重启防火墙&#xff1a; systemctl …

MATLAB的Bar3函数调节渐变色

一. colormap函数 可以使用colormap函数: t1=[281.1,584.6, 884.3,1182.9,1485.2; 291.6,592.6,896,1197.75,1497.33; 293.8,596.4,898.6,1204.4,1506.4; 295.8,598,904.4,1209.0,1514.6];bar3(t1,1) set(gca,XTickLabel,{300,600,900,1200,1500},FontSize,10) set(gca,YTic…

常见C语言基础题说明一

一. 简介 整理一些C语言常见的基础笔试题。 假如系统是 32位计算机的情况下&#xff0c;字节对齐方式为 4字节对齐。计算如下题目。 二. 常见C语言基础笔试题 1. 计算 sizeof(数组名)&#xff0c; sizeof(指针)&#xff0c;strlen(数组名) 大小 计算如下的变量的值&…

npm无法安装node-sass 的问题

安装 node-sass 的问题呈现&#xff1a;4.9.0版本无法下载 Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.0/win32-x64-72_binding.node Cannot download "https://github.com/sass/node-sass/releases/download/v4.9.0/win32-x64-…

JavaScript检测数组类型

在JavaScript中&#xff0c;可以使用typeof操作符检测一个变量的数据类型。对于数组类型来说&#xff0c;typeof操作符返回的结果是"object"。 虽然typeof操作符可以用来检测数组类型&#xff0c;但它并不能区分数组和其他对象类型。为了准确地检测一个变量是否是数…

Verilog 触发器状态机语言描述-条件语句

条件语句 调试探针条件 调试探针条件可在双向或三向分支条件语句中使用。每个调试探针条件都占用调试探针连接到的 ILA 的 PROBE 端口上 的 1 个触发器比较器。 重要提示 &#xff01; 每个 PROBE 端口都可包含 1 到 16 个触发器比较器 &#xff08; 在编译时配置 &a…

MySQL调优-01反范式化表设计

MySQL调优-01反范式化表设计 数据库设计三范式 第一范式&#xff08;1NF&#xff09;。确保数据库表的每一列都是不可分割的原子数据项&#xff0c;即列中不可包含数组、记录等非原子数据项&#xff1b;确保表中没有重复的属性或列&#xff0c;每个属性只出现一次&#xff0c;…

技术速递|介绍 .NET MAUI 社区工具包 v8 :包含 TouchBehavior 支持!

作者&#xff1a;Gerald Versluis 排版&#xff1a;Alan Wang .NET MAUI 社区工具包团队很自豪地向您介绍 .NET MAUI 社区工具包的第 8 版&#xff01; 在这个最新的主要版本中&#xff0c;我们为您带来了备受期待的 TouchBehavior&#xff08;以前称为 TouchEffect&#xff0…

Hutool 只复制不为空的属性

在使用 Hutool 的工具类进行复制时&#xff0c;有时候需要只复制不为空的属性。 比如在修改时&#xff0c;先把数据库中的数据查出来&#xff1a; SysArea sysArea getById(dto.getId());此时再以传入值复制到数据库表对象中&#xff0c;但如果传入值中有属性为null&#xf…

MM模块学习一(供应商创建,物料类型的定义及功能)

物料管理流程&#xff1a; 源头&#xff1a;采购需求->采购申请 MRP&#xff1a;物料需求计划。运行物料需求计划的结果&#xff0c;根据物料的性质来判断是外购&#xff08;采购申请&#xff09;或者是生产&#xff08;计划订单->生产订单&#xff09;。 采购申请&am…

力扣:最大子数组和

在这里和大家分享一下关于最大子数组和、最小子数组和的算法题。 其中最大子数组在力扣刷题中遇到&#xff0c;最小子数组和在笔试中遇到&#xff0c;虽然一个为最大&#xff0c;一个为最小&#xff0c;但是它们的思路完全一样&#xff0c;而且在写法上也是对称的&#xff0c;…

Termux安装某个Python包时只能pip install但是又出错的解决办法

在安装pandas时用pkg search pandas是没有内容的&#xff0c;这时候只能用pip install pandas安装&#xff0c;但是途中一定会报错&#xff0c;导致安装失败&#xff0c;解决办法是先安装tur-repo&#xff0c;即 pkg install tur-repo 然后搜索pandas&#xff0c;有pkg安装包…

Thinkphp5 中常见的session 操作方法

在 ThinkPHP 框架中&#xff0c;session 是用于在多个页面或请求之间存储用户信息的机制。以下是在 ThinkPHP 中进行 session 常见操作的一些示例&#xff1a; 启动 Session 在 ThinkPHP 中&#xff0c;通常不需要手动启动 Session&#xff0c;因为框架会在应用启动时自动处理…