假设你有一个长度为 n 的数组,初始情况下所有的数字均为 0,你将会被给出 k​​​​​​​ 个更新的操作。

其中,每个操作会被表示为一个三元组:[startIndex, endIndex, inc],你需要将子数组 A[startIndex … endIndex](包括 startIndex 和 endIndex)增加 inc。

请你返回 k 次操作后的数组。

示例:

输入: length = 5, updates = [[1,3,2],[2,4,3],[0,2,-2]]
输出: [-2,0,3,5,3]

解释:

初始状态:
[0,0,0,0,0]
进行了操作 [1,3,2] 后的状态:
[0,2,2,2,0]
进行了操作 [2,4,3] 后的状态:
[0,2,5,5,3]
进行了操作 [0,2,-2] 后的状态:
[-2,0,3,5,3]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/range-addition
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

——————————————

class Solution:def getModifiedArray(self, length: int, updates: List[List[int]]) -> List[int]:ans = [0 for _ in range(length+1)]   # 用于保存每个操作的信息for up in updates:begin,end,num = up[0],up[1],up[2]# 对每个操作的起始位置和结束位置进行记录ans[begin] += num  ans[end+1] -= numtemp = ans[0]  # temp用于保存ans[0-n]的总操作数累加和for i in range(1,length):if ans[i] != 0:temp += ans[i]ans[i] = tempreturn ans[:-1]

时间复杂度为O(n+k),空间复杂度为O(1);

leetcode —— 区间加法相关推荐

  1. LOJ #6280. 数列分块入门 4-分块(区间加法、区间求和)

    #6280. 数列分块入门 4 内存限制:256 MiB时间限制:500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计测试数据讨论 题目描述 给出一个长为 ...

  2. HDU - 4578Transformation——线段树+区间加法修改+区间乘法修改+区间置数+区间和查询+区间平方和查询+区间立方和查询

    [题目描述] HDU - 4578Transformation Problem Description Yuanfang is puzzled with the question below: The ...

  3. LOJ #6279. 数列分块入门 3-分块(区间加法、查询区间内小于某个值x的前驱(比其小的最大元素))...

    #6279. 数列分块入门 3 内存限制:256 MiB时间限制:1500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计测试数据讨论 3 题目描述 给出一 ...

  4. LeetCode 370. 区间加法(差分思想)

    文章目录 1. 题目 2. 解题 1. 题目 假设你有一个长度为 n 的数组,初始情况下所有的数字均为 0,你将会被给出 k​​​​​​​ 个更新的操作. 其中,每个操作会被表示为一个三元组:[sta ...

  5. P3373 【模板】线段树 2(区间乘法+区间加法+区间求和)

    题目描述 如题,已知一个数列,你需要进行下面三种操作: 将某区间每一个数乘上 xx 将某区间每一个数加上 xx 求出某区间每一个数的和 输入格式 第一行包含三个整数 n,m,pn,m,p,分别表示该数 ...

  6. leetcode 区间问题

    文章目录 304. 二维区域和检索 - 矩阵不可变[前缀和] 二维前缀和 二维前缀和 一维前缀和 模板 总结 995. K 连续位的最小翻转次数[贪心.差分.滑动窗口]!!! 贪心差分 滑动窗口 总结 ...

  7. 数据结构:分块-区间加法、区间乘法和单点查询

    这里问题的关键是妥善处理好两种标记 让乘法标记的优先级高于加法 若当前的一个块乘以m1后加上a1,这时进行一个乘m2的操作,则原来的标记变成m1*m2,a1*m2 若当前的一个块乘以m1后加上a1,这 ...

  8. 【分块】#6283. 数列分块入门 7(区间乘法、区间加法、单点查询)

    整理的算法模板合集: ACM模板 题目传送门 同线段树,维护的时候先乘再加. 要时刻注意懒惰标记的下标是块的编号!!! #include<cstdio> #include<algor ...

  9. LeetCode 区间子数组个数

    给定一个元素都是正整数的数组A ,正整数 L 以及 R (L <= R). 求连续.非空且其中最大元素满足大于等于L 小于等于R的子数组个数. 例如 : 输入: A = [2, 1, 4, 3] ...

最新文章

  1. 文件流能转换格式吗_amr转换mp3格式文件
  2. 日调度5万亿次,腾讯云微服务架构体系TSF深度解读
  3. 机器学习算法基础——决策树和随机深林
  4. 温故而知新,UI学习中的大部分控件及常用的基础都整理了一下,很长~~~~~~~~~很长!!!!!!!...
  5. 94年的博士后又拿到了这个金奖!原来是他的学弟
  6. ais信号接收设备_基于USRP的AIS接收机实现
  7. 用nodejs做一个svn密码修改页面
  8. Linux下Java安装与配置
  9. java 成绩管理系统 报告_Java学生成绩管理系统实验报告
  10. java初级程序员需要掌握技能,快来看鸭~
  11. Laravel框架之微信授权获取用户信息
  12. Tensorflow 中 learning rate decay 的奇技淫巧
  13. CISCO 基于时间访问控制
  14. 3D模型文件(STL格式)Python读取并解析体积、长、宽、高信息
  15. Vss、Vdd和Vcc
  16. Oracle 计算两个时间的差值
  17. flutter 获取视频缩略图video_thumbnail
  18. Halcon学习(1)初识Halcon HDevelop
  19. 杂项-报表-Minitab:Minitab百科
  20. 正规网上兼职赚钱日结,来看看小心别被骗!

热门文章

  1. Linux中文件查找技术大全
  2. 记录一些常见的沟通问题 #29
  3. JReBel激活码注册申请--方便Java开发中使用Jrebel热部署
  4. BGP——双AS配置
  5. C语言,利用函数调用统计输出素数并统计素数和
  6. 为 .net 生态贡献力量——制作并上传 nuget 包(内有独家彩蛋)
  7. Maven 项目在 Eclipse 的创建配置
  8. Ubuntu 16.04 + Nginx + Django 项目部署
  9. Anaconda简介:它是什么,以及如何安装
  10. Stateflow历史节点的使用