在理解知识的时候,多问几个为什么,为什么不能那样写,就是所谓的质疑一切,这样超级超级重要
写算法的时候,先写大框架,比如函数 函数需要的数据 数据的初始化
为了提高算法效率,就想一下该问题的特殊情况,先考虑它们,当满足那个特殊情况时,直接排除,或者其它操作
检查是否有指针溢出
当有两种情况都有可能发生且没有具体条件的时候,用递归
lcs_print(i-1,j,tmp);
lcs_print(i,j-1,tmp);
return;
一般都要在后面加个return,拿LCS举例,每次执行一次完整的函数,都要生成一次答案,而如果你没有return的话,
当回溯到那个函数的之后,又将生成一次答案,而那时的答案不一定是正确的
dfs:剪枝一般写在函数开头,剪枝一般是考虑数据溢出的情况
dp:当前最有解=与前一个最优解有关的函数