1 two sum
一次遍历,每次遍历到的数根据之前已经遍历过的来确定是否满足条件
2 Add Two Numbers
一次遍历,注意边界条件时候的取值
3 Longest Substring without Repeating Characters
一次遍历,每次计算以当前字符为结尾的最长不重复子串,同时更新左边界
4 Median of Two Sorted Arrays
二分查找,在nums1中找到合适的位置,由左右两部分长度相同来确定nums2中的位置
5 Longest Palindromic Substring
动态规划,dp[i][j]
代表i~j
子串是否是回文串,状态转移方程是长度为3的由长度为1来得到
10 Regular Expression Matching
动态规划,dp[i][j]
表示前p[j - 1]
和前s[i - 1]
是否匹配上,状态转移方程根据p[j - 1]
来看
11 Container With Most Water
双指针法,每次计算出最大值,并更新l
和r
15 3Sum
一次遍历,每次遍历到使用双指针法,成功时才去重
17 Letter Combinations of a Phone Number
回溯法,分治思想,cur.size() == digits.size()
时终止,每个数字对应的多个字母的divide
是并列的
19 Remove Nth Node From End of List
快慢指针,快指针先走n步