C# 计算列表中最常见整数乘积的好方法?

C# 计算列表中最常见整数乘积的好方法?,c#,C#,假设我有一个由n个整数组成的数组,我应该返回 最常见整数的乘积 示例:2,3,4,2,2,1,4-返回8 我可以使用普通数组来存储值 如果我想进行运行时优化,我应该在C或字典中使用哈希表吗? 这也能帮助我进行空间优化吗? 或者有没有其他方法可以进行空间优化?这是一种精心设计的方法,看起来像是家庭作业,所以我只想大致描述一下我将如何进行空间优化。然后你可以尝试一些东西,如果你有任何问题就回来 在某种表格中,字典是最简单的选择,它将数字与它们遇到的次数联系起来。然后,只需取计数最高的一个,从现在起,

假设我有一个由n个整数组成的数组,我应该返回 最常见整数的乘积

示例:2,3,4,2,2,1,4-返回8

我可以使用普通数组来存储值

如果我想进行运行时优化,我应该在C或字典中使用哈希表吗? 这也能帮助我进行空间优化吗?
或者有没有其他方法可以进行空间优化?

这是一种精心设计的方法,看起来像是家庭作业,所以我只想大致描述一下我将如何进行空间优化。然后你可以尝试一些东西,如果你有任何问题就回来


在某种表格中,字典是最简单的选择,它将数字与它们遇到的次数联系起来。然后,只需取计数最高的一个,从现在起,我们称之为计数n,并将该数字与自身相乘n次。

您可以进行速度优化或空间优化,但不能同时进行

如果需要空间优化,可以对数组进行排序,然后循环查找相同值的最长序列。除了阵列之外,这将需要很少的存储空间,但它将更改原始阵列。排序通常在日志n上,然后循环将打开


如果您想优化速度,可以使用字典计算发生次数,然后获得最大次数。字典平均需要n*10个字节,但原始数组保持不变。计数将接近开启,找到最大计数将开启。

Protip:首先让它工作,然后优化它。感谢您的所有答案。请您在logn上解释一下排序方法好吗?数组。排序方法平均在logn上: