小工具知识网

当前位置: 首页 > 行业知识 > 【Leetcode每日一题】前缀和(难度⭐)(25)

行业知识

【Leetcode每日一题】前缀和(难度⭐)(25)

2026-11-03 21:58:52 来源:互联网转载

1. 题目解析

题index.php/tags-41973.html" >���链接:DP34 【模板】前缀和

这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。

核心在于计算题目所给区间数组元素和返回即可。

2. 算法原理

  • 为了提高计算效率,我们可以预先计算出一个「前缀和」数组。这个数组 dp[i] 的含义是:数组中从第 1 个元素到第 i 个元素(包含两端)的和。
  • 因此,dp[i - 1] 就代表了从第 1 个元素到第 i - 1 个元素的和。通过这样一个数组,我们可以方便地通过递推公式 dp[i] = dp[i - 1] + arr[i] 来计算得到任意位置的前缀和。
  • 一旦我们有了这个前缀和数组,计算任意区间 [l, r] 内所有元素的和就变得非常简单且快速。具体来说,区间 [l, r] 内所有元素的和可以通过 dp[r] - dp[l - 1] 来快速得到。
  • 这是因为 dp[r] 包含了从第 1 个元素到第 r 个元素的和,而 dp[l - 1] 包含了从第 1 个元素到第 l - 1 个元素的和,两者相减即得区间 [l, r] 的元素和。

    3. 代码编写 

    #include #include using namespace std;int main() {    int n, q;    cin >> n >> q;    vector arr(n + 1);    for(int i = 1; i > arr[i];        vector dp(n + 1);    for(int i = 1; i > l >> r;        cout 

上一篇:服务器怎么接路由器的?

下一篇:英雄连2中文设置攻略,轻松切换语言,游戏无障碍畅玩!