【问题标题】:Find all possible sequences of 3 repeating numbers in 2d array在二维数组中查找所有可能的 3 个重复数字的序列
【发布时间】:2019-02-23 11:42:51
【问题描述】:

假设我有以下二维数组:

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

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

【问题讨论】:

  • java 和 c#?为什么要同时标记两者?你已经尝试了什么?
  • 如果你能提供一个minimal reproducible example 来说明你目前的进展,那就太棒了。请务必包含一组不同的输入以及您期望的每个输入的输出。
  • Linq SelectMany、GroupBy 和 Count 将是 c# 中的一个选项。

标签: java c# loops multidimensional-array


【解决方案1】:

我尝试过这样的事情:

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 计算数字。变量result包含列表中出现3次及以上的所有元素。

【讨论】:

    猜你喜欢
    • 2021-07-08
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2021-09-23
    • 2021-06-09
    • 2015-12-31
    相关资源
    最近更新 更多