【发布时间】:2020-08-31 07:59:32
【问题描述】:
这是我的代码,我在leetcode平台上写的
const int N1 = 100+1;
const int N2 = 10e4+1;
class Solution {
public:
bool cache[N1][N2];
bool isSubsequence(string s, string t) {
int n1 = s.size();
int n2 = t.size();
for(int i=0; i<=n1; i++) {
for(int j=0; j<=n2; j++) {
if(i == 0)
cache[i][j] = true;
if(j == 0)
cache[i][j] = false;
if(s[i-1] == t[j-1])
cache[i][j] = cache[i-1][j-1];
else
cache[i][j] = cache[i][j-1];
}
}
return cache[n1][n2];
}
};
它给出了以下错误,我不知道为什么。请帮忙。 error image
【问题讨论】:
-
检查对“缓存”的访问:您可能超出了数组边界。使用嵌套向量或编写自定义内容来检查边界。
-
i和j从 0 开始,但你有s[i-1]。cache有同样的问题。 -
好的,谢谢,我理解错了,我忘了在if前面放else,否则会去索引越界。
标签: c++ c++11 subsequence