代码之家  ›  专栏  ›  技术社区  ›  Daniel Coffman

将两个连续排序整数集映射到一个整数集

  •  0
  • Daniel Coffman  · 技术社区  · 15 年前

    例如 B:{1,2,3,4} C:{1,2,3,4,5,6,7} B:{1->1,2->3,3->5,4->7}

    手工做这些很好,但我很难概括。

    分解问题时,我需要找到(1)输出集中存储桶的数量和(2)输入>输出映射

    我的解决方案如下:

    //输出C中有LCM(| A |-1,| B |-1)+1个桶

    int numBuckets=LCM( A.计数()-1,B.计数()-1)+1;

    //将中的元素映射到中的桶 输出C

    for(int i=0;i<A.Count();i++)
    { 映射。添加(A.ElementAt(i), 1) )).ToString());}

    1 回复  |  直到 13 年前
        1
  •  0
  •   Jacob    15 年前

    假设集合C的大小为 对于A组, . 那么,如果你想映射 A C级 ,让第一个元素相互映射,然后按跳过元素

    floor( (Nc-1)/(Na-1) )