这道题目一看就去翻答案了,因为以前见过,知道并查集可以用来做分组,但这样的题目真的要并查集么?想想也是HashSet之类就能搞定么。果然是HashMap而不是HashSet。下面这个解法我比较容易理解,刚开始乍看发现对每一个n又要左边遍历右边遍历的,仔细一看对每一段遍历过的数字就标记一下,那么保证每个数字只访问一次,还是O(n)。

public class Solution {public int longestConsecutive(int[] num) {HashMap<Integer, Boolean> map = new HashMap<Integer, Boolean>();int max = 0;for (int n : num){map.put(n, false);}for (int n: num){if (!map.get(n)){int len1 = getLength(map, n-1, -1);int len2 = getLength(map, n+1, 1);int len = len1 + len2 + 1;if (len > max) max = len;}}return max;}private int getLength(HashMap<Integer, Boolean> map, int n, int step){int len = 0;while (map.containsKey(n)){len++;map.put(n, true);n += step;}return len;}
}

  

转载于:https://www.cnblogs.com/lautsie/p/3315900.html

[leetcode]Longest Consecutive Sequence相关推荐

  1. LeetCode: Longest Consecutive Sequence [128]

    [题目] Given an unsorted array of integers, find the length of the longest consecutive elements sequen ...

  2. LeetCode:Longest Consecutive Sequence

    题目链接 Given an unsorted array of integers, find the length of the longest consecutive elements sequen ...

  3. [LeetCode] Longest Consecutive Sequence 求解

    为什么80%的码农都做不了架构师?>>>    题目 Given an unsorted array of integers, find the length of the long ...

  4. leetcode Longest Consecutive Sequence

    #include <iostream> #include <vector> #include <unordered_map>// 时间复杂度是O(n), 空间复杂度 ...

  5. LeetCode: Longest Consecutive Sequence

    想到map了,可惜没想到用erase来节省空间,看了网上答案 1 class Solution { 2 public: 3 int longestConsecutive(vector<int&g ...

  6. 298. Binary Tree Longest Consecutive Sequence

    题目: Given a binary tree, find the length of the longest consecutive sequence path. The path refers t ...

  7. leetcode 128. Longest Consecutive Sequence | 128. 最长连续序列(Java)

    题目 https://leetcode.com/problems/longest-consecutive-sequence/ 题解 方法1:HashMap 解法,O(n^2) 如下图,假设 n=4 被 ...

  8. LeetCode 128. 最长连续序列(Longest Consecutive Sequence)

    题目描述 给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1 ...

  9. 128. Longest Consecutive Sequence

    Title 给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [ ...

最新文章

  1. 互联网协议 — TCP — 拥塞控制(网络质量保障)
  2. 做外贸如何获取同行的价格体系?转至【【Mr.Harris 原创】
  3. 正态分布为什么常见?
  4. ansible 配置文件优先级
  5. 【英语学习】【WOTD】imbroglio 释义/词源/示例
  6. 【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字
  7. 内存颗粒和闪存颗粒的区别_颠覆你的常识,这内存上面混搭了四个厂家的颗粒...
  8. spring揭秘 读书笔记 六 bean的一生
  9. 非常好用的php单文件在线文件管理器微网盘系统 万维景盛优化版
  10. 晶圆涨、封测涨、芯片涨、材料涨…涨价的野火烧到哪了?
  11. How to choose the number oftopics/partitions in a Kafka cluster?
  12. w7忘记计算机密码,win7系统忘记电脑开机密码的解决方法
  13. 盒子模型与PS基本操作
  14. Three——二、加强对三维空间的认识
  15. HGAME2022 Web WP
  16. 网安之php开发第十五天
  17. 创业时代,喔,创业时代,有一点可爱有一点呆
  18. 电子邮件乱码产生的主要原因及几种解决方法
  19. win10开启虚拟机蓝屏死机解决问题
  20. 不要再问租用服务器一个月多少钱了?你看到的都是别人想给你看的!

热门文章

  1. Linux各类压宿包的压缩和解压方法
  2. 【2020团体程序设计天梯赛】L1部分(PTA,L1-065到L1-072)题解代码
  3. java graphics dispose_Graphics.Dispose 方法 (System.Drawing) | Microsoft Docs
  4. java 实现打印条形码_激光打印机与条码打印机打印不干胶标签哪个好?
  5. Lc19删除链表的倒数第N个节点
  6. wdatepicker 设置只显示时分_液晶显示多功能电力仪表EX8-33
  7. C++类成员的初始化顺序
  8. 2016蓝桥杯C++A:网友年龄
  9. 递归法:走楼梯; 旋转数组的最小数字(递归法和改进二分法)
  10. HDU 4553:约会安排(区间合并)