返回

#yyds干货盘点# 动态规划专题:差分

发布时间:2023-12-03 21:05:07 204

1.简述:

描述

给你一个长度为n的正数数组.接下来对这个数组进行m次操作,每个操作包含三个参数l,r,k,代表将数组中部分都加上k。请输出操作后的数组。

输入描述:

第一行包含两个整数n和m。第二行包含n个整数表示接下来是m行,每行三个整数,分别代表每次操作的参数l,r,k.

输出描述:

输出1行,表示m次操作后的

示例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]+" ");
}

}
}
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
STM32 HAL库DMA串口发送数据参考文章 2023-12-03 18:13:58