比如我有一个已排序的集合 List集合内容如下 {1,1,2,3,4,4,4,5,6,6,7,7,7,7,7,8,8,9}其中 1 有 2 个, 2 有 1 个, 3 有 1 个, 4 有 3个, 而 7 却有 5 个。我想写一个函数,针对这个例子,输出就是 5。有点像 SQL 的 GROUP BY ,然后取下 MAX请问该函数的算法该如何写?100分相送,谢谢大家啦!P.S.
该算法的用途是计算某个论坛上所有帖子的最后回复时间的并发数。
比如在最高峰的时间,有 10 个人在 20:30 分回复。那么函数输出为 10
该算法的用途是计算某个论坛上所有帖子的最后回复时间的并发数。
比如在最高峰的时间,有 10 个人在 20:30 分回复。那么函数输出为 10
不是 SQL 数据库,如果是数据库则好办多了,用下 Group By 问题就解决了。
另外,集合是已经根据从小到大排序后的。
严重同意。。
不过,用 linq 也可以,简单
var i = arr.GroupBy(a => a).Max(b => b.Count());
List<int> list = new List<int>() { 1, 1, 2, 3, 4, 4, 4, 5, 6, 6, 7, 7, 7, 7, 7, 8, 8, 9 };
var max = (from l in list group l by l into coll select coll.Count()).Max();
{
return i.Distinct<T>().Count();
}
遍历Contains