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/

相关推荐
何仙鸟4 分钟前
GarmageSet下载和处理
java·开发语言
wefly20179 分钟前
免安装!m3u8live.cn在线 M3U8 播放器,小白也能快速上手
java·开发语言·python·json·php·m3u8·m3u8在线转换
yuweiade11 分钟前
springboot和springframework版本依赖关系
java·spring boot·后端
ywf121512 分钟前
springboot设置多环境配置文件
java·spring boot·后端
云泽80821 分钟前
深入 AVL 树:原理剖析、旋转算法与性能评估
数据结构·c++·算法
小马爱打代码24 分钟前
SpringBoot + 消息生产链路追踪 + 耗时分析:从创建到发送,全链路性能可视化
java·spring boot·后端
心软小念24 分钟前
金三银四,全网最详细的软件测试面试题总结
软件测试·面试·职场和发展
小码哥_常26 分钟前
MyBatis批量插入:从5分钟到3秒的逆袭之路
后端
薛先生_09944 分钟前
js学习语法第一天
开发语言·javascript·学习
本地化文档1 小时前
rustdoc-book-l10n
rust·github·gitcode