并查集题目

1 可以直接用字典统计每个数出现的次数,再排序后由小到大统计每个数应该移动的次数,关键是要用一个标记来记录最后面的位置,时间复杂度O(N+klogk+k)=O(N+klogk),k是不同元素的个数,因为要排序,

945. 使数组唯一的最小增量

2 两个思路,时间复杂度都是O(N),一个是先用集合去重,再不断找每个序列的最小值,来计算每个序列的长度,最后再求最大值,另一个是直接遍历,当某个值第一次出现时,计算它的上一个和下一个的长度,最后求和加1,特别要注意更新序列两端的长度,这里最重要,更新了长度才能达到并差集的效果,虽然序列中间的值没有更新,因为没有必要,

128. 最长连续序列

猜你喜欢

转载自www.cnblogs.com/xxswkl/p/12678447.html