Array

LC 188

输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4]

方法一:切片操作;取数组里的后k个元素:nums[-k%n:]

方法二:先反转整体,再反转局部. 反转过程单独实现,不要用切片,因为可能会产生额外空间。

双指针

LC 75: Sort Colors

15. 三数之和

双指针,需要注意索引处理.

首先外层指针需去重,内层的两个指针在每次获得答案的时候去重

双序列

双序列双指针

88. 合并两个有序数组

输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3

输出:[1,2,2,3,5,6]

双指针应当从后往前移动

844. 比较含退格的字符串

结束循环的条件必须是 while i>=0 or j>=0。不然的话,当 i<0, j>=0 的时候,循环就结束了,判断为 False,而j此时或许还在#上。

某个指针或许需要多一次,循环移动,来把这个字符串消耗完。比如"n"和"b#n"