我遇到了以下问题:
“查找数组中出现奇数次的所有元素”。
我对此的想法是:
Use HashMap
:将数组中的值添加为HashMap中的键。每个键对应的值将是遇到该键的次数。
使用快速排序以 O(N log N) 的方式对数组进行排序,然后遍历数组以检查哪些元素出现奇数次。
您觉得怎么样,还有其他方法吗?如果不是,那么这两种方法哪一种更好?
提前致谢!
您可以修改第一种方法以使用哈希集而不是哈希映射。
创建一个最初为空的哈希集。遍历数组的元素。对于每个元素,检查哈希集合:如果当前数组元素不在集合中,则将其添加;否则,请将其删除。
当到达数组末尾时,哈希集将包含在数组中出现奇数次的每个对象。
由于访问哈希集中的元素是O(1)
,该算法有O(N)
时间复杂度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)