【发布时间】:2019-11-20 21:08:06
【问题描述】:
给定一个列表,例如:
List<int> _ = new List<int>() { 1, 1, 1, 3, 3, 4, 4, 1, 1, 8, 8, 8, 5, 6, 7, 7, 7, 7, 8, 8 };
在 C# 中,查找一个项目连续重复多少次的最佳/最快/最有效方法是什么? 对于这个列表,我要寻找的结果是这样的:
1 * 3
3 * 2
4 * 2
1 * 2
8 * 3
5 * 1
6 * 1
7 * 4
8 * 2
不一定非得是这种奇数乘法格式,我觉得这样比较容易理解。
我一直在尝试循环遍历列表并将每个项目与下一个项目进行比较,但我不可避免地会卡住,并且不知道该怎么做。
【问题讨论】:
-
尝试在整个集合中循环执行。
List<int>将数字用作索引,否则会向上计数。或者Dictionary<int, int>可以轻松做到这一点。 -
请看在你所珍视的一切的份上,不要只命名变量
_。 -
所以你已经实例化了列表......你在哪里尝试迭代和跟踪计数?你能在代码的那部分edit 吗?
-
向我们展示您的循环尝试,以便我们修复它。
-
您要求“最佳”、“最快”和“最有效”,但这些不一定是同一回事。给出一个可以衡量“最佳”和“效率”的指标,并记住我们经常用更差的内存使用来换取更快的速度。