我有一个像下面这样的数组:
{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个,因为它太远了.只有3个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");
}
Run Code Online (Sandbox Code Playgroud)
我只关心发生最多的重复.如果某个号码重复两次但另一个号码重复3次.我只想知道重复3次的数字(含10个项目).谢谢
max默认为0seen默认为0count从0最多开始计数N,其中N是元素数量.N >= 10,减少seen[array[count - 10]]seen[array[count]]max[array[count]],请更新它max.这样,seen在10个元素的窗口中始终具有准确的计数,并且在10个元素的窗口max中将具有每个元素的最大出现次数.