• 一维数组和二维数组的转换表示(C#)


    关键:下标的计算

    一维->二维

    一个n个元素的一维数组,转换为r行c列的二维数组

    对于一维数组中任意一个元素的下标i(0 <= i < n)

    其对应的二维数组下标为 (i / c, i % c), 显然, 只与列数c有关,而与行数r无关

    code like this

    int[] a = new int[n];
    int[,] b = new int[r, c];

    for (int i = 0; i < n; i++)
        b[i 
    / c, i % c] = a[i];

    also can write like this

    for (int i = 0; i < r; i++)
    {
        
    for (int j = 0; j < c; j++)
        {
            b[i, j] 
    = a[i * c + j];
        }
    }

    二维->一维

    int[,] a = new int[r, c];
    int[] b = new int[r * c];
    for(int i = 0; i < b.Length; i++)
        b[i] 
    = a[i / c, i % c];
  • 相关阅读:
    Jzoj4721 LCS
    Jzoj4721 LCS
    Bzoj3196 二逼平衡树
    Bzoj3196 二逼平衡树
    Jzoj4715 树上路径
    Jzoj4715 树上路径
    031下一个排列
    汉诺塔问题【递归】
    求全排列和组合问题
    030串联所有单词并匹配
  • 原文地址:https://www.cnblogs.com/graphics/p/1496203.html
Copyright © 2020-2023  润新知