本文参考UCAS卜东波老师算法设计与分析课程撰写
前言
这个标题说实话有点长,本文主要想借上文的例子来说明在实际应用问题中通过对考虑对象的筛选将问题讨论范围压缩,使得计算的冗余点突出出来,再以此入手,降低算法时间复杂度。
在前文算法设计与分析:动态规划(3)-序列联配问题(以算代存)中,我们已经利用分治思想,将原本需要 O ( m n ) O(mn) O(mn)空间复杂度的动态规划问题转换成只需要 O ( m + n ) O(m+n) O(m+n),进一步地,在本文中,我们考虑能否将时间复杂度也降低。
最终实现的结果是将 O ( m n ) O(mn) O(mn)的时间复杂度降低到