Longest Consecutive Sequence

来源:互联网 发布:软件接口测试方案 编辑:程序博客网 时间:2024/06/16 19:47
 int longestConsecutive(vector<int>& nums)     {        unordered_set<int> m;//无序set,加速        for(int i=0;i<nums.size();i++)        {            m.insert(nums[i]);        }        int res = 0;        while(m.size()>0)//如果set中有元素        {            int start = *m.begin();//把set的第一个元素设置为开始元素            int count = 1;            m.erase(start);//擦除第一个元素            int small = start-1; //定义一个比首元素小一            int large = start+1;//定义一个比首元素大一            while(m.count(small)>0)//找到small的话,count加一,small减一,擦除继续            {                m.erase(small);                small--;                count++;            }            while(m.count(large)>0)//找到large的话,count加一,small减一,擦除继续            {                m.erase(large);                large++;                count++;            }            res = max(res,count);//每次循环返回最大的给res        }        return res;    }

0 0
原创粉丝点击