1. 程式人生 > >c++中寫一個返回一個二維陣列的方法

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;
}