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

猜你喜欢

转载自blog.csdn.net/qq_33221533/article/details/82825633