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/

相关推荐
yuhaiqiang9 分钟前
被 AI 忽悠后,开始怀念搜索引擎了?
前端·后端·面试
CQU_JIAKE11 分钟前
3.21【A】
开发语言·php
CoovallyAIHub22 分钟前
Pipecat:构建实时语音 AI Agent 的开源编排框架,500ms 级端到端延迟
深度学习·算法·计算机视觉
今儿敲了吗22 分钟前
python基础学习笔记第九章——模块、包
开发语言·python
灰色小旋风26 分钟前
力扣13 罗马数字转整数
数据结构·c++·算法·leetcode
xyq202428 分钟前
TypeScript 命名空间
开发语言
2301_8101609530 分钟前
C++与物联网开发
开发语言·c++·算法
sxlishaobin33 分钟前
Java I/O 模型详解:BIO、NIO、AIO
java·开发语言·nio
cm65432034 分钟前
基于C++的操作系统开发
开发语言·c++·算法
ArturiaZ37 分钟前
【day57】
开发语言·c++·算法