20200606:最长连续序列(leetcode128)
最长连续序列
- 题目
- 思路与算法
- 代码实现
- 复杂度分析
题目
思路与算法
- 本题没什么思路问题,主要是这个时间复杂度的约束。想到用set来实现。
- 注意先去重,也是一个想到set的角度
- 去重后找相邻的数,包括比当前数大的和比当前数小的。
- 先看当前set中是否包含num-1,不包含则开始往上找,从num+1开始找,计数君计数即可。同理先确认不包含num+1,往下找也可以。
代码实现
class Solution {public int longestConsecutive(int[] nums) {int res = 0;// 使用set去重HashSet<Integer> nums_set = new HashSet<>();for (int num : nums) {nums_set.add(num);}// 再次遍历,寻找比当前数字小1的数字for (int num : nums_set) {// 如果当前set中不包含num-1这个数字if (!nums_set.contains(num - 1)) {// 则获取当前数字,并且将计数君加1int curNum = num;int count = 0;// 如果不包含num-1,则从num+1开始找,并用计数君计数即可。while (nums_set.contains(curNum)) {curNum++;count++;}// 获取最大计数君res = Math.max(res,count);}}return res;}
}
复杂度分析
满足O(N)的时间复杂度要求。
20200606:最长连续序列(leetcode128)相关推荐
- 最长连续序列—leetcode128
给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, ...
- leetcode128 最长连续序列
给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, ...
- Leetcode--128. 最长连续序列
给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, ...
- 算法--------最长连续序列(Java版本)
题目 给定一个未排序的整数数组,找出最长连续序列的长度.要求算法的时间复杂度为 O(n).示例:输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, ...
- 【LeetCode】128. 最长连续序列
一.题目描述 给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 二.示例 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连 ...
- leetcode 128. Longest Consecutive Sequence | 128. 最长连续序列(Java)
题目 https://leetcode.com/problems/longest-consecutive-sequence/ 题解 方法1:HashMap 解法,O(n^2) 如下图,假设 n=4 被 ...
- LeetCode 128. 最长连续序列 golang
128. 最长连续序列 [困难] 给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释 ...
- [Leedcode][JAVA][第128题][最长连续序列][Hash]
[问题描述][困难] 给定一个未排序的整数数组,找出最长连续序列的长度.要求算法的时间复杂度为 O(n).示例:输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 ...
- LeetCode 298. 二叉树最长连续序列(自顶向下)
文章目录 1. 题目 2. 解题 1. 题目 给你一棵指定的二叉树,请你计算它最长连续序列路径的长度. 该路径,可以是从某个初始结点到树中任意结点,通过「父 - 子」关系连接而产生的任意路径. 这个最 ...
最新文章
- 主流Java报表工具的比较
- 大厂首发!java敏捷开发模式面试题
- nature machine intelligence
- 第八章 shell学习之循环和结构化命令
- SHA1 - Java加密与安全
- ASP.NET Core Cookie SameSite
- 复杂风控场景下,如何打造一款高效的规则引擎
- java csv 追加_如何在Java中添加一个包含CSV数据的列
- oracle备份信息在控制文件丢失,恢复之利用备份在所有控制文件丢失情况下恢复(一)...
- Python2 圆满落幕,Python 继续辉煌! | 原力计划
- mysql多表联合查询事例_MySQL——多表查询详细介绍以及实例
- js处理服务器传递的json文件,获取js 文件传递的参数并使用json2进行json数据转换...
- Java课程设计-学生成绩管理系统
- linux hping3命令,Linux中hping3命令起什么作用呢?
- btsync多客户端同步的设置
- Linux的命名空间
- Chrome浏览器检查工具栏缩小
- Revit打印工具 RevitPrinter
- php翻译成中文版,php 翻译函数,可以将中文汉字转换为E文
- UnityMesh 博文收藏
热门文章
- 程序员注意啦,这个微信群可以学英语,而且全程免费!
- 微软警告 Windows 10 1703 即将停止支持!
- 2019 Go 开发者路线图,请收下这份指南!
- 赶超 Python 与 Java,JavaScript 问鼎最受欢迎的编程语言
- 产教融合,共塑未来”,CIE 2018 中国 IT 教育博鳌论坛盛大落幕
- c语言怎么定义一个条件变量,C++ 条件变量(condition_variable)
- 带你手撸红黑树,高级Java开发必看
- ubuntu合并终端_技术|初级:如何在终端及图形界面中更新 Ubuntu
- ffmpeg 拼接mp4_ffmpeg 合并 拼接 mp4视频
- arduino yield函数的作用_Python里Yield关键词的作用