当前位置: 代码迷 >> C# >> 算法有关问题,请高手解答
  详细解决方案

算法有关问题,请高手解答

热度:279   发布时间:2016-05-05 02:53:27.0
算法问题,请高手解答
请教各位高手,如何将以下数组合并?
Arr1 = {1,2,1};
Arr2 = {1,2,3};
Arr3 = {1,3,1};
Arr4 = {1,3,3};
Arr5 = {2,21};
Arr6 = {2,2,3};
Arr7 = {2,3,1};
Arr8 = {2,3,3};

按相同元素合并,得到最终数组
Arr = {1,2},{2,3},{1,3}

------解决思路----------------------
你最终的结果是多维数组,没太清楚,结果和原始数据的对应
------解决思路----------------------
List<string[]> list = new List<string[]>{
        new string[] {"1","2","1"},
new string[] {"1","2","3"},
new string[] {"1","3","1"},
new string[] {"1","3","3"},
new string[] {"2","2","1"},
new string[] {"2","2","3"},
new string[] {"2","3","1"},
new string[] {"2","3","3"},
new string[] {"3","3","3"}};

    var resultList = new List<string[]>();
    var num = 0;
    while (list.Count != num)
    {
        var log = (int)Math.Log(list.Count - num, 2);
        var take = (int)Math.Pow(2, log);
        resultList.Add(MergeArray(list.Skip(num).Take(take).ToList())[0]);
        num += take;
    }
    Console.WriteLine(string.Join("   ", resultList.Select(x => string.Join(",", x))));

调用部分修正为这样就满足你的要求了
------解决思路----------------------
楼主是否需要考虑合并顺序?例如{1,2,1}&{1,2,3}与{1,2,3}&{1,2,1}的合并结果相同吗?
------解决思路----------------------
应该用数组求交集

------解决思路----------------------
 有没有顺序,没顺序的话 ,放到个数组里面 然后distinct 就可以了
  相关解决方案