필자는 Longest Common Subsequence 문제를 해결하기위한 코드를 작성했습니다. 정의 할 m x w 차원의 2D 테이블이 필요합니다. 전역 변수로 정의했지만 용량 초과 오류가 발생했습니다.LCS에 대한 2 차원 배열 테이블
#define FOR(i,n) for(i = 0; i < n ; ++ i)
int LCS(const char M[],int m, const char W[], int w)
{
// m length of M w length of W
int ans,min,i,j;
// lcs table needs to be defined with required dimensions
min = (m >= w) ? w : m;
FOR(i,m)
FOR(j,w)
{
if (i == 0 || j == 0)
lcs[i][j] = 0; // repetitive
else if (M[i] == W[j])
lcs[i][j] = lcs[i-1][j-1] + 1;
else
lcs[i][j] = max(lcs[i-1][j],lcs[i][j-1]);
}
return (min == lcs[m-1][w-1]);
}
나는 벡터의 벡터를 사용하고 있지만 동시에 크기를 mxw로 정의 할 수 있습니까? 정규
은 벡터를 미리 정의하고 코드에서와 같이 첨자 연산자를 사용하여 액세스하려는 것으로 충분하지 않습니다. 사용
vector<vector<int>> lcs(m, vector<int>(w));
확인. 개체 이름 형식이 허용됩니다. – devsaw
@DamnDev 죄송합니다. 이해가 가지 않습니다. 개체 이름이없는 경우 어떤 양식이 허용됩니까? – pmr