Leetcode-128 最长连续序列
Leetcode
本题是Leetcode Hot100中哈希表最后一道题,个人觉得难度比两数之和&&字母异位词分组高一点,但经过前两题的训练,这一题想到用哈希表并不算困难。
老规矩,先遍历。
1 | for (auto &item: nums) { |
对于数组中遍历的每一个元素item,想要知道他是否连续,很自然的,我们会想到在数组中看一看是否存在item-1和item+1。
但我们知道,数组是没有前瞻性的,我们在没有遍历到后面的元素时,根本无法预知到它的值,
所以理所当然地,如果当前被遍历的元素不存在前一个数,我们就可以将其作为起始值,将所有元素通通存储在哈希表中,不断查询起始值++,一旦查不到连续的下一个就可以结束,更新长度。
话不多说,直接上代码,疑难点笔者会给出注释。
1 | // 因为只要存储数值,不用存储下标,非二元组就不需要用map来存储了,改用set |
本题的思路可能并不容易想到,建议对测试用例模拟几遍,会更容易理解本题的代码。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 千万进制のBlog!
评论