2.03 ✅ Two Pointers

# Two Pointers #

• 双指针滑动窗口的经典写法。右指针不断往右移，移动到不能往右移动为止(具体条件根据题目而定)。当右指针到最右边以后，开始挪动左指针，释放窗口左边界。第 3 题，第 76 题，第 209 题，第 424 题，第 438 题，第 567 题，第 713 题，第 763 题，第 845 题，第 881 题，第 904 题，第 978 题，第 992 题，第 1004 题，第 1040 题，第 1052 题。
``````	left, right := 0, -1

for left < len(s) {
if right+1 < len(s) && freq[s[right+1]-'a'] == 0 {
freq[s[right+1]-'a']++
right++
} else {
freq[s[left]-'a']--
left++
}
result = max(result, right-left+1)
}
``````
• 快慢指针可以查找重复数字，时间复杂度 O(n)，第 287 题。
• 替换字母以后，相同字母能出现连续最长的长度。第 424 题。
• SUM 问题集。第 1 题，第 15 题，第 16 题，第 18 题，第 167 题，第 923 题，第 1074 题。
No.TitleSolutionDifficultyTimeComplexitySpaceComplexityFavoriteAcceptance
0011Container With Most WaterGoMediumO(n)O(1)54.3%
00153SumGoMediumO(n^2)O(n)❤️32.2%
00163Sum ClosestGoMediumO(n^2)O(1)❤️46.2%
00184SumGoMediumO(n^3)O(n^2)❤️36.5%
0019Remove Nth Node From End of ListGoMediumO(n)O(1)39.9%
0026Remove Duplicates from Sorted ArrayGoEasyO(n)O(1)50.3%
0027Remove ElementGoEasyO(n)O(1)52.1%
0028Find the Index of the First Occurrence in a StringGoMediumO(n)O(1)37.5%
0031Next PermutationGoMedium37.1%
0042Trapping Rain WaterGoHardO(n)O(1)❤️58.8%
0061Rotate ListGoMediumO(n)O(1)35.7%
0075Sort ColorsGoMediumO(n)O(1)❤️57.1%
0080Remove Duplicates from Sorted Array IIGoMediumO(n)O(151.5%
0082Remove Duplicates from Sorted List IIGoMedium45.4%
0086Partition ListGoMediumO(n)O(1)❤️51.3%
0088Merge Sorted ArrayGoEasyO(n)O(1)❤️45.7%
0125Valid PalindromeGoEasyO(n)O(1)43.5%
0143Reorder ListGoMedium51.0%
0148Sort ListGoMedium54.0%
0151Reverse Words in a StringGoMedium30.2%
0167Two Sum II - Input Array Is SortedGoMediumO(n)O(1)60.0%
0189Rotate ArrayGoMedium39.2%
0202Happy NumberGoEasy54.3%
0283Move ZeroesGoEasyO(n)O(1)61.3%
0287Find the Duplicate NumberGoMediumO(n)O(1)❤️59.1%
0344Reverse StringGoEasyO(n)O(1)76.1%
0345Reverse Vowels of a StringGoEasyO(n)O(1)47.7%
0349Intersection of Two ArraysGoEasyO(n)O(n)70.2%
0350Intersection of Two Arrays IIGoEasyO(n)O(n)55.5%
0392Is SubsequenceGoEasy49.3%
0457Circular Array LoopGoMedium32.2%
0475HeatersGoMedium36.1%
0524Longest Word in Dictionary through DeletingGoMediumO(n)O(1)51.2%
0532K-diff Pairs in an ArrayGoMediumO(n)O(n)40.7%
0541Reverse String IIGoEasy50.5%
0557Reverse Words in a String IIIGoEasy81.5%
0567Permutation in StringGoMediumO(n)O(1)❤️43.8%
0581Shortest Unsorted Continuous SubarrayGoMedium36.2%
0611Valid Triangle NumberGoMedium50.4%
0633Sum of Square NumbersGoMedium34.6%
0653Two Sum IV - Input is a BSTGoEasy60.9%
0658Find K Closest ElementsGoMedium46.7%
0696Count Binary SubstringsGoEasy65.5%
0719Find K-th Smallest Pair DistanceGoHard36.3%
0763Partition LabelsGoMediumO(n)O(1)❤️79.8%
0795Number of Subarrays with Bounded MaximumGoMedium52.7%
0821Shortest Distance to a CharacterGoEasy71.4%
0825Friends Of Appropriate AgesGoMedium46.4%
0826Most Profit Assigning WorkGoMediumO(n log n)O(n)44.4%
0832Flipping an ImageGoEasy80.4%
0838Push DominoesGoMediumO(n)O(n)57.0%
0844Backspace String CompareGoEasyO(n)O(n)48.0%
0845Longest Mountain in ArrayGoMediumO(n)O(1)40.2%
0881Boats to Save PeopleGoMediumO(n log n)O(1)52.7%
0922Sort Array By Parity IIGoEasy70.7%
09233Sum With MultiplicityGoMediumO(n^2)O(n)45.4%
0925Long Pressed NameGoEasyO(n)O(1)33.7%
0942DI String MatchGoEasy76.6%
0969Pancake SortingGoMedium70.0%
0977Squares of a Sorted ArrayGoEasyO(n)O(1)71.9%
0986Interval List IntersectionsGoMediumO(n)O(1)71.4%
1040Moving Stones Until Consecutive IIGoMedium55.6%
1048Longest String ChainGoMedium59.2%
1089Duplicate ZerosGoEasy51.5%
1093Statistics from a Large SampleGoMediumO(n)O(1)44.6%
1332Remove Palindromic SubsequencesGoEasy76.1%
1385Find the Distance Value Between Two ArraysGoEasy65.4%
1679Max Number of K-Sum PairsGoMedium57.4%
1721Swapping Nodes in a Linked ListGoMedium67.8%
1877Minimize Maximum Pair Sum in ArrayGoMedium80.3%
——————————————————————-——-—————-—————————-————-————-

Nov 10, 2022