c++中寫一個返回一個二維陣列的方法
依本人的見解,定義一個二維陣列,可以直接用一個指向指標的指標來表示
int **dp; //這樣就定義了一個二維陣列
這裡不多說,直接給出實現返回二維陣列的一個函式,大家可以比葫蘆畫瓢
用這個方法實現返回一個二維陣列的函式。
int **getdp(const char *str1, const char *str2)
{
int **dp;
dp = (int **)malloc(strlen(str1) * sizeof(int **));
for (int i = 0; i < strlen(str1); i++)
dp[i] = (int *)malloc(strlen(str2) * sizeof(int));
//第一列賦值
for (int i = 0; i < strlen(str1); i++)
{
if (str1[i] == str2[0])
dp[i][0] = 1;
else
dp[i][0] = 0;
}
//第一行賦值
for (int j = 0; j < strlen(str2); j++)
{
if (str1[0] == str2[j])
dp[0][j] = 1;
else
dp[0][j] = 0;
}
//其餘位置賦值為左上角加1
for(int i = 1; i < strlen(str1); i++)
for (int j = 1; j < strlen(str2); j++)
{
if (str1[i] == str2[j])
dp[i][j] = dp[i - 1][j - 1] + 1;
}
return dp;
}