在二维数组中找到3个重复数字的所有可能序列

时间:2018-09-19 10:13:07

标签: java c# loops multidimensional-array

假设我有以下2d数组:

int[][] array = {{1,4,4,6,6,3},
                {4,8,6,5,7,3},
                {6,6,9,3,3,9}};

我需要找到3个或更多重复数字的所有序列, 例如,在此数组中,输出应为3,因为我们有3乘以4, 5次6次和3次3次,序列必须是对角线或水平。 我该如何解决。 请帮我。 谢谢。

1 个答案:

答案 0 :(得分:0)

我尝试过这样的事情:

int[][] arrays = new int[][] {
    new []{1,4,4,6,6,3},
    new []{4,8,6,5,7,3},
    new []{6,6,9,3,3,9}
};

var list = new List<int>();

foreach (var array in arrays)
    list.AddRange(array);

var result = list.GroupBy(i => i)
    .Select(g => new { Value = g.Key, Count = g.Count() })
    .Where(x => x.Count > 2);

由于要一起使用所有数组,因此可以将它们全部放在一个列表中。在此列表中,您可以使用linq计算数字。变量结果包含所有元素,它们在列表中是3次或更多次。