差分
package week03;
public class 一维差分 {
static int []arr = {1,3,7,5,2};
static int []d = new int[arr.length + 1];
public static void add(int l, int r, int v)
{
d[l] = d[l] + v;
d[r + 1] = d[r + 1] - v;
}
public static void main(String[] args) {
add(2,4,5);
add(1,3,2);
add(0,2,-3);
for (int i = 1; i < 5;i++)
{
d[i] += d[i-1];
}
for(int i = 0; i < 5; i ++)
{
arr[i] += d[i];
System.out.print(arr[i] + " ");
}
}
}

浙公网安备 33010602011771号