1.简述:

描述

给你一个长度为n的正数数组#yyds干货盘点# 动态规划专题:差分_i++.接下来对这个数组进行m次操作,每个操作包含三个参数l,r,k,代表将数组中#yyds干货盘点# 动态规划专题:差分_数组_02部分都加上k。请输出操作后的数组。

输入描述:

第一行包含两个整数n和m。第二行包含n个整数表示#yyds干货盘点# 动态规划专题:差分_i++_03接下来是m行,每行三个整数,分别代表每次操作的参数l,r,k.#yyds干货盘点# 动态规划专题:差分_代码实现_04#yyds干货盘点# 动态规划专题:差分_代码实现_05#yyds干货盘点# 动态规划专题:差分_数组_06#yyds干货盘点# 动态规划专题:差分_i++_07

输出描述:

输出1行,表示m次操作后的#yyds干货盘点# 动态规划专题:差分_i++_03

示例1

输入:

3 2
1 2 3
1 2 4
3 3 -2

输出:

5 6 1

2.代码实现:

import java.util.*;

public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
//存放数组元素
int[] arr=new int[n];
for(int i=0;i<n;i++){
arr[i]=sc.nextInt();
}
//存放增量
long[] delta=new long[n+1];
//m次操作
while(m-->0){
int l=sc.nextInt();
int r=sc.nextInt();
int k=sc.nextInt();
//进行差分处理
delta[l]+=k;
if(r>=n) continue;
delta[r+1]-=k;
}

//计算对应元素增量
for(int i=0;i<n;i++){
delta[i+1]+=delta[i];
System.out.print(delta[i+1]+arr[i]+" ");
}

}
}