跳到正文
信奥逐课

第 210 课

双指针去重

🔵 基础 约 7 分钟

一句话理解

有序数组去重可以用双指针原地写。

为什么要学

unique 的手写版。

讲解

慢指针表示下一个要写的位置,快指针扫。不同才写入。

无序数组应先排序,或用 set。

例子

int k = 0;
for (int i = 0; i < n; i++)
    if (k == 0 || a[i] != a[k - 1]) a[k++] = a[i];

k 是新长度。

常见错误

练习 做完再看下一课

相邻去重要求相同元素已经挨在一起,所以常先排序。

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

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

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

左右方向键也可翻课