原地反转要几个指针
第 1 步:i 在头,j 在尾 第 2 步:交换这一对 第 3 步:i、j 往中间走一步 第 4 步:交换这一对 第 5 步:i、j 往中间走一步 第 6 步:碰面了:原地反转完成 3 7 5 9 4 i j 把一排人原地前后调个个儿,最省
原地去重的前提
用双指针在数组上原地去重,前提是这排数据【0】。
反转之后第一个是谁
运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; #include <u
去重之后还剩几个
运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; int main() {
原地反转这排人
补全代码:用两个指针把这排人原地前后调个个儿。做完之后只输出第一个人。 (本题用 g++ -std=c++17 -O0 编译。)
原地去掉重复的
下面这排数已经排好序了。补全代码,原地把重复的挤掉。做完之后只输出还剩几个不重复的。 (本题用 g++ -std=c++17 -O0 编译。)
原地移走某个值
补全代码:原地把所有等于 2 的值移走。做完之后只输出剩下几个。 (本题用 g++ -std=c++17 -O0 编译。)
按下标访问的复杂度
按下标取出一个元素,时间复杂度是【0】。
在开头插入的复杂度
第 1 步:已经放了 4 个 第 2 步:开头插:4 个都要往后挪 第 3 步:末尾追加:直接放,不用挪 3 7 5 9 在最前面插入一个元素,时间复杂度是【0】。
没满时末尾追加的复杂度
座位还没坐满,在末尾追加一个,复杂度是【0】。