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/

相关推荐
拳里剑气1 分钟前
C++算法:前缀和
开发语言·c++·算法·前缀和
隔壁大炮8 分钟前
Day07-词嵌入层解释
人工智能·深度学习·算法·计算机视觉·cnn
啊我不会诶10 分钟前
Codeforces Round 1091 (Div. 2) and CodeCraft 26
c++·算法
凌波粒12 分钟前
LeetCode--二叉树前中后序遍历的递归与迭代实现(二叉树/DFS)
算法·leetcode·深度优先
啊哦呃咦唔鱼15 分钟前
Leetcodehot100-215. 数组中的第K个最大元素
数据结构·算法·leetcode
程序员老邢15 分钟前
【产品底稿 08】商助慧 AI 仿写实战复盘:RAG 知识库 + 大模型联动,一键生成技术底稿
人工智能·spring boot·后端·ai·语言模型·milvus
IT_陈寒16 分钟前
JavaScript的闭包差点让我加班到凌晨
前端·人工智能·后端
cany100016 分钟前
C++ -- 宏和模板
开发语言·c++
_Evan_Yao17 分钟前
技术成长周记07|复盘中看清方向,多Agent开启新挑战
java·后端
初心未改HD18 分钟前
Go语言接口与nil深度解析
开发语言·golang