两数之和用对撞的前提

用对撞双指针求「两数之和等于目标」,前提是【0】。

开始练习 →

和太小时该动哪个指针(C++)

两个指针指的数加起来比目标小,应该【0】。

开始练习 →

对撞的循环什么时候停

对撞双指针的循环,停下来的条件是【0】。

开始练习 →

和为 40 的两个下标

在 13 15 17 23 24 里找和为 40 的两个数。运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #inclu

开始练习 →

写一个两数之和

补全 two_sum:在有序数组里找和为 target 的两个下标,找不到返回 {-1, -1}。找和为 40 的,把两个下标用 / 连起来输出。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

用对撞双指针原地反转

补全 rev_two:两个指针一头一尾,边交换边往中间走。反转之后用 / 连起来输出。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

判回文一次验两种

补全 is_pal:两头往中间比,全都对上才是回文。把 abcba 和 abcab 的结果用 / 连起来输出。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

size() 返回的是什么类型

第 1 步:j 从 size()-1 往下走 第 2 步:j-- 之后 j = 2 第 3 步:j-- 之后 j = 1 第 4 步:j-- 之后 j = 0 第 5 步:0 再减 1:绕到最大的数 第 6 步:j >= 0 永远成立

开始练习 →

空数组的 size() - 1

空 vector 的 v.size() - 1 等于【0】。

开始练习 →

右指针更稳妥的写法

对撞双指针里的右指针,C++ 里更稳妥的写法是【0】。

开始练习 →