<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>双指针 on Chen Kai Blog</title><link>https://www.chenk.top/zh/tags/%E5%8F%8C%E6%8C%87%E9%92%88/</link><description>Recent content in 双指针 on Chen Kai Blog</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 16 May 2022 09:00:00 +0000</lastBuildDate><atom:link href="https://www.chenk.top/zh/tags/%E5%8F%8C%E6%8C%87%E9%92%88/index.xml" rel="self" type="application/rss+xml"/><item><title>LeetCode（二）：双指针技巧</title><link>https://www.chenk.top/zh/leetcode/02-%E5%8F%8C%E6%8C%87%E9%92%88%E6%8A%80%E5%B7%A7/</link><pubDate>Mon, 16 May 2022 09:00:00 +0000</pubDate><guid>https://www.chenk.top/zh/leetcode/02-%E5%8F%8C%E6%8C%87%E9%92%88%E6%8A%80%E5%B7%A7/</guid><description>&lt;p>哈希表靠内存换速度，双指针则反其道而行之：只需一点结构性假设——数组已排序、链表可能存在环、答案落在某个连续窗口内——就能以 &lt;span class="math-inline">$O(n)$&lt;/span>
 时间复杂度和 &lt;span class="math-inline">$O(1)$&lt;/span>
 额外空间解决问题。代码看起来极其简单（两个下标加一个 &lt;code>while&lt;/code> 循环），但却是新手最容易翻车的技巧之一：下标越界、死循环、漏掉重复项、平局时移错指针……各种陷阱层出不穷。要真正掌握它，关键不是死记移动规则，而是围绕 &lt;strong>不变量&lt;/strong> 进行严谨推理。&lt;/p></description></item></channel></rss>