lc 最长连续序列
Posted friskypuppy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lc 最长连续序列相关的知识,希望对你有一定的参考价值。
链接:https://leetcode-cn.com/problems/longest-consecutive-sequence/
代码:
class Solution { public: int longestConsecutive(vector<int>& nums) { int n = nums.size(); if(n == 0) return 0; if(n == 1) return 1; set<int> s; for(int i = 0; i < n; i++) { s.insert(nums[i]); } int res = 1; for(int i = 0; i < n; i++) { if(s.find(nums[i]-1) == s.end()) { int cur_num = nums[i]+1; int cur_res = 1; while(s.find(cur_num) != s.end()) { cur_num++; cur_res++; res = max(res, cur_res); } } } return res; } };
思路:构造哈希表来实现查询,哈希是 O(1)的,故可以通过将每个值加入哈希表,找到最小的那个值在测试++ 是否在 hashtable中来完成 O(n)操作。
以上是关于lc 最长连续序列的主要内容,如果未能解决你的问题,请参考以下文章
ICS计算系统概论实验3—LC3汇编代码实现最长重复子字符串Longest-duplicate-substring