当前位置: 首页 > article >正文

leetcode 1652. 拆炸弹

题目如下
在这里插入图片描述
数据范围
在这里插入图片描述
示例
在这里插入图片描述

观察数据范围可知n最多100所以O(n^2)的复杂度也是可以接受的,不过本题更优解还是使用定长滑动窗口。因为每个窗口的和所对应的位置都是对应的,所以我们只需要找到窗口左端点与窗口对应的关系就行。因为本题的k可以小于0所以需要注意左端点与窗口的关系应该分开讨论。

通过代码

class Solution {
public:
    vector<int> decrypt(vector<int>& code, int k) {
        int n = code.size();
        int sum = 0, ak = abs(k);
        vector<int> ans(n, 0);
        if (k == 0)
            return ans;
        for (int i = 0; i < ak; i++) {
            sum += code[i];
        }
        if (k > 0)
            ans[(n - 1) % n] = sum;
        else
            ans[(ak) % n] = sum;
      

        for (int i = 1; i < n; i++) {
            sum += code[(i - 1 + ak) % n];
            sum -= code[i - 1];
            if (k > 0)
                ans[(n + i - 1) % n] = sum;
            else
                ans[(i + ak) % n] = sum;//k小于0时左端点在对应的位置前面(循环数组注意取余)
        }
        return ans;
    }
};

在这里插入图片描述


http://www.kler.cn/a/523767.html

相关文章:

  • C++,STL 简介:历史、组成、优势
  • java——继承
  • HTML 标题
  • USB 3.1-GL3510-52芯片原理图设计
  • 高级编码参数
  • Deepseek技术浅析(一)
  • go-基础之嵌入
  • 10JavaWeb——SpringBootWeb案例01
  • 计算机网络__基础知识问答
  • 低代码岗位就业前景分析
  • STM32 对射式红外传感器配置
  • Excel - Binary和Text两种Compare方法
  • 高效学习方法分享
  • 9.8 实战:使用 GPT Builder 开发定制化 ChatGPT 应用
  • 使用 Go 和 gqlgen 实现 GraphQL API:实战指南
  • NodeJs / Bun 分析文件编码 并将 各种编码格式 转为 另一个编码格式 ( 比如: GB2312→UTF-8, UTF-8→GB2312)
  • 【论文推荐|深度学习,滑坡检测,多光谱影像,自然灾害,遥感】2022年Landslide4Sense竞赛成果:基于多源卫星影像的先进滑坡检测算法研究(五)
  • 【某大厂一面】数组和链表区别
  • MATLAB绘图:动态波浪图
  • lwIP——4 网络接口
  • [MySQL]事务的隔离级别原理与底层实现
  • 2.策略模式(Strategy)
  • 如何使用Git进行版本控制?
  • 单细胞分析基础-第一节 数据质控、降维聚类
  • NLP自然语言处理通识
  • 前端25.1.26学习记录