7.一维差分

一维差分

前缀和的逆运算

题目:
java 复制代码
 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 输入 n 和 m
        int n = sc.nextInt();
        int m = sc.nextInt();
        // 数组定义
        int[] a = new int[n + 1];  // a[1] 到 a[n] 为有效数据
        int[] b = new int[n + 1];  // b[1] 到 b[n] 为有效数据
        // 输入数组 a
        for (int i = 1; i <= n; i++) {
            a[i] = sc.nextInt();
        }
        // 初始化差分数组 b
        for (int i = 1; i <= n; i++) {
            insert(b, i, i, a[i]);
        }
        // 处理 m 次区间操作
        while (m-- > 0) {
            int l = sc.nextInt();
            int r = sc.nextInt();
            int c = sc.nextInt();
            insert(b, l, r, c);
        }
        // 计算并输出最终结果
        for (int i = 1; i <= n; i++) {
            b[i] += b[i - 1];
            System.out.print(b[i] + " ");
        }
        sc.close();
    }

    // 区间更新操作
    private static void insert(int[] b, int l, int r, int c) {
        b[l] += c;
        if (r + 1 <= b.length - 1) {
            b[r + 1] -= c;
        }
    }
相关推荐
白宇横流学长几秒前
基于SpringBoot实现的课程答疑系统设计与实现【源码+文档】
java·spring boot·后端
积跬步至千里PRO4 分钟前
在 Java 中实现一个标准 Service 接口,并通过配置动态选择具体实现类供 Controller 调用
java·简单工厂模式·解耦
chengchong_cc9 分钟前
海康对接摄像头
java·vue.js
意疏35 分钟前
深入解析MySQL Join算法原理与性能优化实战指南
mysql·算法·性能优化
菜鸟小九42 分钟前
Leetcode20 (有效的括号)
java·数据结构·算法
悟能不能悟1 小时前
讲一件Java虚拟线程
java·开发语言·oracle
fictionist1 小时前
动态 Web 开发技术入门篇
java·服务器·开发语言·笔记·学习·mysql·spring
louisgeek1 小时前
Java Date-Time
java
N_NAN_N1 小时前
[蓝桥杯 2024 国 Python B] 设计
java·数据结构·算法·并查集
量子-Alex2 小时前
【DETR目标检测】ISTD-DETR:一种基于DETR与超分辨率技术的红外小目标检测深度学习算法
深度学习·算法·目标检测