#include <iostream>
#include <vector>
#include <unordered_map>// 時間復雜度是O(n), 空間復雜度O(n)
using namespace std;class Solution1
{
public:int longestConsecutive(const vector<int> &nums){unordered_map<int, bool> used;for (auto i: nums) used[i] = false; // 自動匹配變量類型 建立一個 hash mapint longest=0;for (auto i:nums){if(used[i]) // truecontinue;int length=1;used[i] = true;for(int j=i+1; used.find(j) != used.end(); ++j){used[j] = true; // 向兩邊查找,找到了就置true,繼續查找. 找不到就退出循環++length;}for (int j=i-1; used.find(j) != used.end(); --j){used[j] = true;++length;}longest = max(longest, length);}return longest;}
};int main()
{vector<int> nums={100, 4, 200, 1, 3, 2};Solution1 s;int length;length = s.longestConsecutive(nums);cout << length << endl;
}