199. 【应-46-2·难】差分批量加
中等
Python
📋 题目描述
初始有一个长度为 N 的数组,所有元素为 0。执行 Q 次区间加操作:每次给出 l r v,表示对 a[l..r] 中的每个元素都加 v(含两端,1 起)。所有操作完成后,输出最终的数组(一行 N 个整数,空格分隔)。请使用差分数组实现 O(N+Q) 算法。
📥 输入描述
第一行两个整数 N Q(1<=N<=10^5, 0<=Q<=10^5)。
接下来 Q 行,每行三个整数 l r v(1<=l<=r<=N,-10^9<=v<=10^9)。
📤 输出描述
一行 N 个整数,表示最终数组(空格分隔)。
输入样例
5 2 1 3 1 2 5 2
输出样例
1 3 3 2 2
提示:差分:diff[l] += v;diff[r+1] -= v。
最后求 diff 的前缀和即得最终数组。注意申请 diff 长度 N+2 防越界。
请登录后提交代码