leetcode —— 区间加法
假设你有一个长度为 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 —— 区间加法相关推荐
- LOJ #6280. 数列分块入门 4-分块(区间加法、区间求和)
#6280. 数列分块入门 4 内存限制:256 MiB时间限制:500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计测试数据讨论 题目描述 给出一个长为 ...
- HDU - 4578Transformation——线段树+区间加法修改+区间乘法修改+区间置数+区间和查询+区间平方和查询+区间立方和查询
[题目描述] HDU - 4578Transformation Problem Description Yuanfang is puzzled with the question below: The ...
- LOJ #6279. 数列分块入门 3-分块(区间加法、查询区间内小于某个值x的前驱(比其小的最大元素))...
#6279. 数列分块入门 3 内存限制:256 MiB时间限制:1500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计测试数据讨论 3 题目描述 给出一 ...
- LeetCode 370. 区间加法(差分思想)
文章目录 1. 题目 2. 解题 1. 题目 假设你有一个长度为 n 的数组,初始情况下所有的数字均为 0,你将会被给出 k 个更新的操作. 其中,每个操作会被表示为一个三元组:[sta ...
- P3373 【模板】线段树 2(区间乘法+区间加法+区间求和)
题目描述 如题,已知一个数列,你需要进行下面三种操作: 将某区间每一个数乘上 xx 将某区间每一个数加上 xx 求出某区间每一个数的和 输入格式 第一行包含三个整数 n,m,pn,m,p,分别表示该数 ...
- leetcode 区间问题
文章目录 304. 二维区域和检索 - 矩阵不可变[前缀和] 二维前缀和 二维前缀和 一维前缀和 模板 总结 995. K 连续位的最小翻转次数[贪心.差分.滑动窗口]!!! 贪心差分 滑动窗口 总结 ...
- 数据结构:分块-区间加法、区间乘法和单点查询
这里问题的关键是妥善处理好两种标记 让乘法标记的优先级高于加法 若当前的一个块乘以m1后加上a1,这时进行一个乘m2的操作,则原来的标记变成m1*m2,a1*m2 若当前的一个块乘以m1后加上a1,这 ...
- 【分块】#6283. 数列分块入门 7(区间乘法、区间加法、单点查询)
整理的算法模板合集: ACM模板 题目传送门 同线段树,维护的时候先乘再加. 要时刻注意懒惰标记的下标是块的编号!!! #include<cstdio> #include<algor ...
- LeetCode 区间子数组个数
给定一个元素都是正整数的数组A ,正整数 L 以及 R (L <= R). 求连续.非空且其中最大元素满足大于等于L 小于等于R的子数组个数. 例如 : 输入: A = [2, 1, 4, 3] ...
最新文章
- 文件流能转换格式吗_amr转换mp3格式文件
- 日调度5万亿次,腾讯云微服务架构体系TSF深度解读
- 机器学习算法基础——决策树和随机深林
- 温故而知新,UI学习中的大部分控件及常用的基础都整理了一下,很长~~~~~~~~~很长!!!!!!!...
- 94年的博士后又拿到了这个金奖!原来是他的学弟
- ais信号接收设备_基于USRP的AIS接收机实现
- 用nodejs做一个svn密码修改页面
- Linux下Java安装与配置
- java 成绩管理系统 报告_Java学生成绩管理系统实验报告
- java初级程序员需要掌握技能,快来看鸭~
- Laravel框架之微信授权获取用户信息
- Tensorflow 中 learning rate decay 的奇技淫巧
- CISCO 基于时间访问控制
- 3D模型文件(STL格式)Python读取并解析体积、长、宽、高信息
- Vss、Vdd和Vcc
- Oracle 计算两个时间的差值
- flutter 获取视频缩略图video_thumbnail
- Halcon学习(1)初识Halcon HDevelop
- 杂项-报表-Minitab:Minitab百科
- 正规网上兼职赚钱日结,来看看小心别被骗!