gpt4 book ai didi

c# - 如何在相距 10 个元素的数组中查找重复项/重复项

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:07 29 4
gpt4 key购买 nike

我有一个如下所示的数组:{1,5,5,4,5,6,7,8,9,10,11,12,13,14,1,16,17,5}我想在每 10 个元素中从一个到另一个查找重复项。

我需要一个代码可以告诉我 5 在 10 个元素中重复了 3 次(在 5s (4) 之间最多只有 1 个元素)。它应该忽略最后 5 个,因为它太很远。只有三个 5 在 10 个元素内)。我不希望代码返回 1,因为两个 1 之间有 13 个元素。

我有一个可以计算重复项的代码,但是如何更改它以便它可以计算包含 10 个元素的重复项?

            var dict = new Dictionary<string, int>();
foreach (var count in combined2)
{
if (dict.ContainsKey(count))
dict[count]++;
else
dict[count] = 1;
}
foreach (var val in dict)
{
MessageBox.Show(val.Key + " occurred " + val.Value + " times");
}

我只关心出现次数最多的重复项。如果某个数字被重复两次而另一个被重复 3 次。我只想知道重复 3 次的数字(共 10 项)。谢谢

最佳答案

  • 创建字典 max 默认为 0
  • 创建字典seen 默认为0
  • 计数 count0N,其中 N 是元素的数量。
  • N >= 10 之后,递减 seen[array[count - 10]]
  • 增加 seen[array[count]]
  • 如果该数字大于max[array[count]],更新它
  • 重复
  • 返回max中最大值的键。

这样,seen在10元素窗口中总是有准确的计数,而max将有每个元素在10元素中出现的最大次数窗口。

关于c# - 如何在相距 10 个元素的数组中查找重复项/重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53879614/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com