跳到正文
信奥逐课

第 162 课

枚举区间

🟢 入门 约 5 分钟

一句话理解

枚举区间:枚举左端点、右端点。

为什么要学

区间题的暴力是 O(n²) 个子区间。

讲解

for l for r>=l 处理 a[l..r]。每个区间再求和若 O(n),就变成 O(n³),通常要前缀和降到 O(n²)。

这是前缀和、双指针的起点。

例子

for (int l = 1; l <= n; l++)
  for (int r = l; r <= n; r++)
    use(l, r);

所有连续子数组。

常见错误

练习 做完再看下一课

长度为 n 的数组,连续子区间个数?

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课