1. 以某个节点为开头的全部子序列: 如 [a],[a, b],[ a, b, c] ... 再从以 b 为开头的子序列开始遍历 [b] [b, c]。
2. 根据子序列的长度为标杆,如先遍历出子序列长度为 1 的子序列,在遍历出长度为 2 的 等等。
3. 以子序列的结束节点为基准,先遍历出以某个节点为结束的全部子序列,由于每一个节点均可能会是子序列的结束节点,所以要遍历下整个序列,如: 以 b 为结束点的全部子序列: [a , b] [b] 以 c 为结束点的全部子序列: [a, b, c] [b, c] [ c ]。ui
第一种遍历方式一般用于暴力解法, 第二种遍历方式 leetcode (5. 最长回文子串 ) 中的解法就用到了。code
第三种遍历方式 由于能够产生递推关系, 采用动态规划时, 常常经过此种遍历方式, 如 背包问题, 最大公共子串 , 这里的动态规划解法也是以 先遍历出 以某个节点为结束节点的全部子序列 的思路leetcode