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/

相关推荐
Makoto_Kimur8 分钟前
Java 打印模板大全
java·开发语言·排序算法
程序员榴莲11 分钟前
Java(十)super关键字
java·开发语言
HAPPY酷17 分钟前
Python高级架构师之路——从原理到实战
java·python·算法
枫叶林FYL30 分钟前
第9章 因果推理与物理理解
人工智能·算法·机器学习
胖咕噜的稞达鸭40 分钟前
C++技术岗面试经验总结
开发语言·网络·c++·网络协议·tcp/ip·面试
ybwycx43 分钟前
SpringBoot下获取resources目录下文件的常用方法
java·spring boot·后端
小白zlm1 小时前
预畸变双线性变换
单片机·嵌入式硬件·算法·电机控制
java1234_小锋1 小时前
Java高频面试题:如何编写一个MyBatis插件?
java·开发语言·mybatis
众创岛1 小时前
iframe的属性获取
开发语言·javascript·ecmascript
一个处女座的程序猿O(∩_∩)O1 小时前
Python基础知识大全:从零开始掌握Python核心语法
开发语言·python