题解 | 【模板】差分
【模板】差分
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] + " "); } } }