双指针为什么能到 O(n)
双指针的复杂度是 O(n),因为【0】。
用双指针通常要什么前提
能用双指针,通常要求数据【0】。
两两配对要试几次
运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <string> #include <
对撞双指针怎么走
第 1 步:找两个数加起来是 40 第 2 步:13+24=37 小了:lo 右移 第 3 步:15+24=39 小了:lo 右移 第 4 步:17+24=41 大了:hi 左移 第 5 步:17+23=40:找到了 13 15 17 23
两数之和用对撞的前提
用对撞双指针求「两数之和等于目标」,前提是【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 编译。)