摘要: 此题如果对空间复杂度有要求O(1).那就用时间复杂度为O(nlogn)的排序算法排序后,遍历一遍数组,相邻元素相等则说明重复。 若要求时间复杂度为O(n),那么就用哈希法。构建一个哈希表,然后观察哈希中元素的数量和原数组数量。具体到c++中,可以使用unordered_set。 1 class So 阅读全文
posted @ 2020-08-20 22:22 布羽 阅读(145) 评论(0) 推荐(0)
摘要: 官方解题给出了四种解法。 第一种,暴力法,时间复杂度O(n*k)。 第二种,额外构建一个等大数组,将额外数组作为中介进行两次全数组的拷贝。时间代价为O(n)。空间代价也为O(n)。 第三种,环状替换,也是我自己实现的方法。时间代价O(n),空间代价O(1)。 如果我们直接把每一个数字放到它最后的位置 阅读全文
posted @ 2020-08-20 00:34 布羽 阅读(193) 评论(0) 推荐(0)