I think time complexity of this DFS solution is also O(m * n)，as O(m * n) DP solution is accepted, this solution got TLE, Could anyone explain why to me? Thanks in advance.

```
class Solution {
public:
int ans = 0;
void dfs(string s, int s_idx, string t, int t_idx) {
//cout << s_idx << ", " << t_idx << endl;
if(t_idx == t.size()) {
ans ++;
return;
}
if(s_idx == s.size()) return;
if(s[s_idx] == t[t_idx]) // if match, 2 options: choose or not choose
dfs(s, s_idx + 1, t, t_idx + 1);
dfs(s, s_idx + 1, t, t_idx); // search next, no matter match or not
}
int numDistinct(string s, string t) {
if(s.size() < t.size()) return ans;
dfs(s, 0, t, 0);
return ans;
}
};
```