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"