128. 最长连续序列

【困难】

给定一个未排序的整数数组,找出最长连续序列的长度。

要求算法的时间复杂度为 O(n)。

示例:

输入: [100, 4, 200, 1, 3, 2]
输出: 4
解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。

Code


// 解题思路
// 将所有nums中元素录入numMap
// 对每个numMap中元素,检测是否是第一个起始元素,如果不是起始元素,skip;如果是,对该元素循环+1从numMap找到该元素对应的最长currentLength
// longest = max(longest, currentLength)
// 代码
func longestConsecutive(nums []int) int {numMap := make(map[int]bool)for _, number := range nums {numMap[number] = true}longest := 0for k, _ := range numMap {if _, prs := numMap[k-1]; prs {continue}currentLength := 1for {if _, prs1 := numMap[k+1]; !prs1 {break}currentLength++k++}longest = max(longest, currentLength)}return longest
}func max(i, j int) int {if i > j {return i}return j
}

LeetCode 128. 最长连续序列 golang相关推荐

  1. LeetCode 128. 最长连续序列(哈希set)

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

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

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

  3. 多看看 leetcode 128. 最长连续序列

    难度:中等 频次:42 题目:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度. 请你设计并实现时间复杂度为 O(n) 的算法解决此问题. 解题思路: ...

  4. leetcode 128最长连续序列

    方法一:使用快排: //排序法,时间O(nlogn),使用STL,只是验证一下思想,非正解: class Solution { public:int longestConsecutive(vector ...

  5. LeetCode 128.最长连续序列

    题目(8¥) 题目地址:https://leetcode-cn.com/problems/longest-consecutive-sequence/ 题解 先对数组进行排序,再遍历维护 count 和 ...

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

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

  7. 【LeetCode】128. 最长连续序列

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

  8. LeetCode 热题 HOT 100 -------31. 下一个排列(数组,数学问题)128. 最长连续序列(数组) 11. 盛最多水的容器(数组) 621. 任务调度器 (数组)

    dsadas /**思路:找下一个排列,并且尽可能小,所以我们应该找一序列中从左边开始的"较小值"与"较大值"交换,但是为了尽可能小应该满足: 1." ...

  9. 128.最长连续序列

    给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度. 请你设计并实现时间复杂度为 O(n) 的算法解决此问题. 示例 1: 输入:nums = [100 ...

最新文章

  1. solaris与linux区别,solaris与linux命令的区别
  2. 【Linux】29.扫描本机同一局域网内 某端口开启 的主机
  3. iOS开发学无止境 - 异步图片加载优化与常用开源库分析
  4. 洛谷P4768 [NOI2018]归程 [可持久化并查集,Dijkstra]
  5. 循环嵌套-[扩展]print函数的结尾处理
  6. MMKV集成与原理,详细学习指南
  7. 2021-08-20 Redis 基本类型:string set sortedSet Hash List
  8. 计算机信应用技术,计算机信息应用技术.ppt
  9. 6. lcd驱动1-硬件原理
  10. 恩智浦杯智能汽车大赛—直立车模实现原理(mpu6050控制)
  11. visio绘制网络拓扑图要求_必备!可以电脑在线使用的3款网络拓扑图软件安利
  12. 远程桌面连接设置详细步骤
  13. Python Text Processing with NLTK 2.0 Cookbook代码笔记
  14. 安徽省大数据与人工智能竞赛经验分享-1【以2020竞赛规程为例】
  15. angular primeng table 非sortIcon排序
  16. mac 安装mysql 后设置开机自启
  17. 美国eb1a移民费用有哪些
  18. leetcode-从双倍数组中还原原数组
  19. 数字图像处理:视觉概述
  20. 国产数据库,不是造富神话

热门文章

  1. 模块 hashlib模块
  2. 新mac 下第一次 安装 mongodb 步骤
  3. mysql慢查询工具
  4. [BZOJ3529][Sdoi2014]数表
  5. 【java】对象变成垃圾被垃圾回收器gc收回前执行的操作:Object类的protected void finalize() throws Throwable...
  6. js 面向对象插件写法,还是很好理解的
  7. 新买的锅要怎么处理?-新锅开锅处理
  8. python 局域网 主机名_使用python获取连接到本地网络(基于主机名)的所有设备的ip...
  9. 在服务器中开虚拟机,可以在云服务器上开虚拟机
  10. php oracle 配置,关于php:为Windows 64位配置Oracle OCI8