一千万游戏玩家,有一个积分排行榜, 积分范围在0-99999,找到重复的积分; 考虑内存不足,空间复杂度尽量低;如果内存充足怎么做?
1、节约空间的方法,原地排序(O(nlgn+n)),遍历,通过判断与相邻元素是否相等,判断重复。空间复杂度O(1)。
2、节约时间方案,建立100000大小数组,计算积分值出现次数,时间复杂度O(n),空间复杂度O(100000),与数据量无关,与积分浮动的范围大小有关。
一千万游戏玩家,有一个积分排行榜, 积分范围在0-99999,找到重复的积分; 考虑内存不足,空间复杂度尽量低;如果内存充足怎么做?
1、节约空间的方法,原地排序(O(nlgn+n)),遍历,通过判断与相邻元素是否相等,判断重复。空间复杂度O(1)。
2、节约时间方案,建立100000大小数组,计算积分值出现次数,时间复杂度O(n),空间复杂度O(100000),与数据量无关,与积分浮动的范围大小有关。