题解 | 【模板】差分
【模板】差分
https://www.nowcoder.com/practice/4bbc401a5df140309edd6f14debdba42
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int n = in.nextInt();
int m = in.nextInt();
in.nextLine();
int[] nums = new int[n];
for (int i=0; i<n; i++) {
nums[i] = in.nextInt();
}
//System.out.println(Arrays.toString(nums));
long[] diff = new long[n];
diff[0] = nums[0];
for (int i=1; i<n; i++) {
diff[i] = nums[i] - nums[i-1];
}
in.nextLine();
while (m-- > 0) {
int l = in.nextInt();
int r = in.nextInt();
int k = in.nextInt();
//System.out.println("-:" + (l-1));
diff[l-1] += k;
if (r < n) {
diff[r] -= k;
}
}
System.out.print(diff[0] + " ");
for (int i=1; i<n; i++) {
diff[i] = diff[i-1] + diff[i];
System.out.print(diff[i] + " ");
}
}
}
查看20道真题和解析