K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
已知需要求解未排序整数数组的最长连续序列长度,要求算法时间复杂度为O(n)。
可以先将数组去重后存入哈希集合,再遍历每个元素判断是否是连续序列的起点(即num-1不在集合中),再向后统计连续长度
如果先对数组进行排序再遍历统计连续长度,时间复杂度不符合O(n)的要求
使用哈希集合的最优解法中,每个元素最多只会被访问两次,因此整体时间复杂度为O(n)
当数组中存在重复元素时,必须先进行排序才能正确统计最长连续序列的长度