跳到主要内容

LeetCode 1~20

5、最长回文子串

dp[i][j]=dp[i+1][j1]&&s[i]==s[j]dp[i][j] = dp[i+1][j-1] \&\& s[i] == s[j]

11、盛最多水的容器

15、三数之和

题目大意是从数组中选3个数使其和为0,找出所有不重复的组合。本题主要难点在于,怎么保证组合的不重复?

由于结果与数组顺序无关,可以先将数组排序。先考虑2个数的情况,即从数组中找2个数使其和为指定值,可以参考两数之和的解法。为了避免组合重复,每次添加组合前先判断是否与之前最后一个组合重复(为什么?因为数组是有序的)。

对于三数之和,遍历数组,将问题转化为两数之和,然后利用两数之和的结果,得到三数组合结果,同样通过判断之前最后一个组合的的第3个数是否重复来对组合进行判重。

17、电话号码的字母组合

全排列,可以用递归解决。

19、删除链表的倒数第N个节点

常规链表题,注意一些边界情况:

  • 删除的是头节点