我有以下代码:
public List<int> Duplicates(List<int> sequence)
{
int[] countArr = new int[156];
foreach (int i in sequence)
{
countArr[i]++;
}
List<int> resultList = new List<int>();
for (var i = 0; i < countArr.Length; i++)
{
if (countArr[i] > 1)
{
resultList.Add(i);
}
}
return resultList;
}
这让我得到了重复的元素,但是没有重复多少次。
在此先感谢您提供的任何帮助。
编辑
我不想使用LINQ
您的算法已经产生了所需的计数,因此您所需要做的就是安排以某种方式将其返回给调用方。一种方法是将返回类型更改为IList<KeyValuePair<int,int>>
。您返回的对的集合将在Key
属性中包含数字,并在属性中包含计数Value
:
IList<KeyValuePair<int,int>> Duplicates(List<int> sequence) {
var countArr = new int[156];
foreach (int i in sequence) {
countArr[i]++;
}
var resultList = new List<KeyValuePair<int,int>>();
for (var i = 0; i < countArr.Length; i++) {
if (countArr[i] > 1) {
resultList.Add(new KeyValuePair<int,int>(i, countArr[i]));
}
}
return resultList;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句