LeetCode: Longest Consecutive Sequence
2014-04-16 20:44
302 查看
思路:可以先排序再开始搜索,但是时间复杂度最快要O(nlog(n))。考虑hash方法,将每个元素映射到唯一的一个hash表中,然后再搜索。对于当前元素,查看左右两边是否存在值,如果存在就继续搜索。注意,搜索过的元素可以在hash表中删除,这样能够减少运行时间,因为搜索过的就不必再次进行搜索了。刚开始我没有删除搜索过的元素,所以超时了,更正后可以Accept.
class Solution { public: int longestConsecutive(vector<int> &num) { unordered_map<int,int> f; int max_v(1); for(auto val: num) f[val] = 1; for(auto val: num){ int left = val - 1, right = val + 1; while (f[left]){ f[left] = 0; left--; } while(f[right]){ f[right] = 0; right++; } max_v = max(max_v,right-left-1); } return max_v; } };
相关文章推荐
- LeetCode题解——Longest Consecutive Sequence
- leetcode_question_128 Longest Consecutive Sequence
- Leetcode--Longest Consecutive Sequence
- [Leetcode]Binary Tree Longest Consecutive Sequence
- Leetcode : Longest Consecutive Sequence
- leetcode---longest-consecutive-sequence---数组
- leetcode — longest-consecutive-sequence
- [Leetcode] Longest Consecutive Sequence
- 【leetcode】longest-consecutive-sequence
- LeetCode Longest Consecutive Sequence
- Longest Consecutive Sequence leetcode
- [LeetCode 128] - 最长连续序列(Longest Consecutive Sequence)
- 【Leetcode】Longest Consecutive Sequence
- LeetCode Longest Consecutive Sequence
- Binary Tree Longest Consecutive Sequence -- LeetCode
- leetcode之Longest Consecutive Sequence
- [leetcode刷题系列]Longest Consecutive Sequence
- leetcode:Longest Consecutive Sequence
- [leetcode]Longest Consecutive Sequence
- 未排序寻找连续 leetcode -- Longest Consecutive Sequence