数组——数组中最长连续序列
来源:互联网 发布:淘宝处理不公平 编辑:程序博客网 时间:2024/05/01 17:49
题目描述:longest-consecutive-sequence
一个未排序的数组,找出其中最长的连续序列,要求时间复杂度O(N).
For example,
Given[100, 4, 200, 1, 3, 2],
The longest consecutive elements sequence is[1, 2, 3, 4]. Return its length:4.
方法:
因时间复杂度要求,不能对数组先进行排序。
hashset的用法:HashSet<T> set=new HashSet(); hashset内部为一个hashmap支持,不保证set的迭代顺序,其基本操作add,remove,contains均在O(1)时间内完成。set中没有重复的元素
import java.util.*;public class Solution { public int longestConsecutive(int[] num) { if(num == null||num.length == 0) return 0; //hashset HashSet<Integer> hs=new HashSet(); for(int i:num) { hs.add(i);//***若hs中没有包含指定元素,则添加指定元素***; } int max=1; for(int i:num) { int count=1; int left=i-1; int right=i+1; while(hs.contains(Integer.valueOf(left))) { count++; hs.remove(left); left--; } while(hs.contains(Integer.valueOf(right))) { count++; hs.remove(right); right++; } if(count>max) { max=count; } } return max; }}
0 0
- 数组——数组中最长连续序列
- 数组中最长连续序列
- 无序数组中最长连续序列
- 数组中的最长连续序列
- 求数组中最长的连续子序列
- 获取一个数组中最长的连续的元素序列
- 无序数组中找到最长连续子序列
- longest-consecutive-sequence,数组中最长的连续序列
- 数组中最长的连续序列(longest consecutive sequence)
- 求数组中最长连续递增子序列
- 数组的最长连续的序列
- 数组中的最长连续序列---dp实现
- 动态规划——数组中最长递减子序列
- 动态规划——数组中最长递减子序列
- 动态规划——数组中最长递减子序列
- 动态规划——数组中最长递减子序列
- 最长连续子数组
- O(n)时间找出无序数组中最长的连续递增序列
- [从头学数学] 第209节 带着计算机去高考(一)
- 小区网络利用树莓派对其他电脑实现远程开机(WOL)
- Jenkins -- 设置域账号登录错误导致无法登录
- 1)基本常用命令
- 运动跟踪之均值漂移(MeanShift)算法和Camshift算法(连续自适应的MeanShift)
- 数组——数组中最长连续序列
- python本地版wordCloud字符云生成
- centos7.2配置网络
- SIM900A(GSM模块)学习
- 【深入理解Linux内核】【分页】相关函数或宏
- JAVA多线程和并发基础面试问答
- 输入阻抗、输出阻抗和阻抗匹配
- 机器学习实战Machine Learning In Action 中的KNN代码详细解释
- Python实现协程的生产者与消费者