【发布时间】:2012-02-14 22:44:29
【问题描述】:
这不是一个问题,而是一个汇总帖子。
所以问题是:如果要找到出现 n 次的元素,如何实现 O(1) 空间和 O(n) 时间复杂度操作一些值类型项(通常是整数或字符)列表,对列表进行排序还是查找所有唯一值?
一个小笔记。这仅适用于具有固定值范围的值类型对象(例如整数、字符等)。
更新
在排序或搜索出现 k 次、偶数次或唯一元素左右的元素时,有很多关于使用这种方法来实现 O(1) 空间和 O(n) 时间复杂度的问题.所以,请仔细阅读问题,尤其是第一句话。这是一个常见问题解答式的帖子,而不是一个问题。
另外,我知道答案,不需要一遍又一遍地发布。如果你觉得你可以添加一些有价值的东西 - 随意编辑问题和主题中最长的答案(注意这是我自己的答案),所以它成为一个社区维基。
相关问题:
- Finding the first non-repeated character of a string in O(n) using a boolean array?
- Find a single integer that occurs with even frequency in a given array of ints when all others occur odd with frequency
- Find if 2 strings are anagram in O(1) space and O(n) time
- Finding duplicates in O(n) time and O(1) space
- Find duplicates in an array
- O(n) algorithm to find out the element appearing more than n/2 times
【问题讨论】:
-
我想我根本不明白这个问题。也许你应该把它分开。例如,您希望如何在 O(1) 空间中使用数组?你也不能在少于 O(n log n) 的时间内真正对数组进行排序(尽管 Radix 排序可以)。
-
@AdrianRatnapala,请参阅下面的答案。
-
@J0HN 如果您能添加一个示例以便我更好地理解这个问题,我将不胜感激?
-
如果您希望您的答案是一个社区 wiki,您可以选中一个复选框。由于为时已晚,您可以将其标记并要求主持人。另外,听起来您正在尝试提出“规范问题”;如果是这样,请适当地改写。 meta.stackexchange.com/q/104877 和 meta.stackexchange.com/q/63762 和 meta.stackexchange.com/q/62695
-
您在帖子中说了两次“这不是问题”。当五个人同意时不要感到惊讶,并且这样就结束了。
标签: algorithm list search sorting