原地反转一个数组

用两个下标在原数组上把它反转过来,空间复杂度是【0】。

开始练习 →

递归的空间看什么

一个递归函数的空间复杂度,主要取决于【0】。

开始练习 →

复制一份多占几个格子

运行下面这段程序,它数的是「额外开了几个格子」: #include <iostream> #include <string> #include <vector> using namespace std;

开始练习 →

原地做呢

同一个数组,改成原地反转。运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; #

开始练习 →

数一数额外开了几个格子

补全 copy_extra:把数组复制一份,返回额外开了几个格子。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

原地版和复制版差多少

补全 compare:返回「复制版额外格子数/原地版额外格子数」(用 / 隔开)。原地版一个新格子都不开。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

递归压了几层栈

补全 fact:用递归算阶乘,顺便记下递归最深压了几层(存在全局变量 max_depth 里)。算 n = 5 的情况——这个数就是它的空间复杂度。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

前缀和是什么

第 1 步:上:原数组;下:累加表 第 2 步:加上 17,存下 17 第 3 步:加上 24,存下 41 第 4 步:加上 15,存下 56 第 5 步:加上 13,存下 69 第 6 步:加上 23,存下 92 第 7 步:区间和:两格

开始练习 →

有了前缀和后查区间和

建好前缀和之后,查任意一段区间的和只要【0】。

开始练习 →

前缀和的代价是什么(C++)

前缀和不是白拿的,它的代价是【0】。

开始练习 →