标签:
这题要仔细体会下哈希表的用法,要注意的是数组本身是无序的,因此需要向左右进行扩张。
另外这个思路可以进行聚类,把连续的标记为一类。
int longestConsecutive(const vector<int> &num) { unordered_map<int, bool> used; for (auto i : num)used[i] = false; int longest = 0; for (auto i : num) { if (used[i])continue; int length = 1; used[i] = true; for (int j = i + 1; used.find(j) != used.end(); j++) { used[j] = true; length++; } for (int j = i - 1; used.find(j) != used.end(); j--) { used[j] = true; length++; } longest = max(longest, length); } return longest; }
leetcode 之Longest Consecutive Sequence(六)
标签:
原文地址:http://www.cnblogs.com/573177885qq/p/5492488.html