跳到正文
信奥逐课

第 118 课

数组递归

🟢 入门 约 5 分钟

一句话理解

数组递归:把“处理整个数组”变成“处理一个元素 + 处理剩下的”。

为什么要学

为后面的分治、线段树建立感觉。

讲解

例如求和:sum(l,r)=a[l]+sum(l+1,r),l>r 时为 0。也可以对半切。

能循环就循环。这里的重点是思考方式,不是为了把求和写得更慢。

例子

int sum(int a[], int l, int r) {
    if (l > r) return 0;
    return a[l] + sum(a, l + 1, r);
}

每次拿走最左元素,直到区间空。

常见错误

练习 做完再看下一课

递归求数组和,规模应如何变?

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

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

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

左右方向键也可翻课