总的来说,我能够成功地找出非递归问题的运行时间复杂性。但是,在大多数递归问题中找出复杂性并不好。例如(在2D矩阵中的回溯/ DFS中)。我已经尝试弄清楚DFS算法的复杂性,我能够理解它是如何O(v + e),但是当涉及在2D矩阵问题中应用dfs和递归时,我无法得到关于如何的直觉找到问题的复杂性。任何帮助,将不胜感激。
P.S。我不是在复制任何特定问题的代码,因为我想要一些输入来解决如何在一般情况下找到这些问题的时间复杂性。为了讨论起见,最近我遇到这些问题的一些例子如下: 给定二维字符矩阵(英文)和一个单词,找出该单词是否存在于矩阵中。您可以在四个方向上移动(U,D,R,L)。 另一个例子:给定一串数字,找到所有可能的有效Ipv4 IP地址。