Rust 力扣 - 1652. 拆炸弹

文章目录

题目描述

题解思路

我们只需要遍历长度长度为k的窗口,然后把窗口内数字之和填充到结果数组中的对应位置即可

题解代码

rust 复制代码
impl Solution {
    pub fn decrypt(code: Vec<i32>, k: i32) -> Vec<i32> {
        let n = code.len();
        let mut ans = vec![0i32; n];

        if k == 0 {
            return ans;
        }

        let mut sum = 0;

        if k > 0 {
            for i in 1..=k as usize {
                sum += code[i];
            }
        
            ans[0] = sum;
        
            for i in 1..n {
                sum += code[(i + k as usize) % n] - code[i];
                ans[i] = sum;
            }    
        } else {
            for i in k..0 {
                sum += code[n + i as usize];
            }

            ans[0] = sum;

            for i in 1..n {
                sum += code[i - 1] - code[(i + k as usize - 1 + n) % n];
                ans[i] = sum;
            }
        }

        ans
    }
}

题目链接

https://leetcode.cn/problems/defuse-the-bomb/

相关推荐
Yingye Zhu(HPXXZYY)19 小时前
ICPC 2023 Nanjing R L 题 Elevator
算法
坐吃山猪20 小时前
SpringBoot01-配置文件
java·开发语言
晚风(●•σ )20 小时前
C++语言程序设计——06 字符串
开发语言·c++
我叫汪枫21 小时前
《Java餐厅的待客之道:BIO, NIO, AIO三种服务模式的进化》
java·开发语言·nio
Nicole-----21 小时前
Python - Union联合类型注解
开发语言·python
晚云与城21 小时前
今日分享:C++ -- list 容器
开发语言·c++
阿维的博客日记21 小时前
LeetCode 139. 单词拆分 - 动态规划解法详解
leetcode·动态规划·代理模式
兰雪簪轩21 小时前
分布式通信平台测试报告
开发语言·网络·c++·网络协议·测试报告
M1A11 天前
小红书重磅升级!公众号文章一键导入,深度内容轻松入驻
后端
程序员Xu1 天前
【LeetCode热题100道笔记】二叉树的右视图
笔记·算法·leetcode