LeetCode 128 Longest Consecutive Sequence (HashMap)
来源:互联网 发布:华为火箭抢购软件 编辑:程序博客网 时间:2024/06/07 10:20
Given an unsorted array of integers, find the length of the longest consecutive elements sequence.
For example,
Given [100, 4, 200, 1, 3, 2]
,
The longest consecutive elements sequence is [1, 2, 3, 4]
. Return its length:4
.
Your algorithm should run in O(n) complexity.
题目链接:https://leetcode.com/problems/longest-consecutive-sequence/
题目大意:求数值连续的子序列最大长度
题目分析:要求O(n)的时间复杂度,那显然只能HashMap了,向左向右拓展标记即可,再回到复杂度,Java里的HashMap的put和get的复杂度都是O(1)的所以总的复杂度为O(n),如果用C++的STL的map,其put的复杂度是O(logn),所以插入的复杂度就是O(nlogn)了,相当于Java里的TreeMap
public class Solution { public int longestConsecutive(int[] nums) { HashMap<Integer, Boolean> hash = new HashMap<>(); HashMap<Integer, Boolean> visit = new HashMap<>(); int count = 0, ans = 0; int len = nums.length; for (int i = 0; i < len; i++) { hash.put(nums[i], true); visit.put(nums[i], false); } for (int i = 0; i < len; i++) { if (!visit.get(nums[i])) { visit.put(nums[i], true); int add = 1, sub = -1; count = 1; while (hash.containsKey(nums[i] + add)) { visit.put(nums[i] + add, true); count ++; add ++; } while (hash.containsKey(nums[i] + sub)) { visit.put(nums[i] + sub, true); count ++; sub --; } ans = Math.max(ans, count); } } return ans; }}
0 0
- LeetCode 128 Longest Consecutive Sequence (HashMap)
- HashMap 实例[leetcode]Longest Consecutive Sequence
- Leetcode 128 Longest Consecutive Sequence
- LeetCode 128: Longest Consecutive Sequence
- LeetCode 128 Longest Consecutive Sequence
- LeetCode: Longest Consecutive Sequence [128]
- LeetCode 128 Longest Consecutive Sequence
- LeetCode(128)Longest Consecutive Sequence
- [leetcode 128] Longest Consecutive Sequence
- leetcode || 128、Longest Consecutive Sequence
- Longest Consecutive Sequence - LeetCode 128
- leetcode 128: Longest Consecutive Sequence
- leetcode 128:Longest Consecutive Sequence
- leetcode-128-Longest Consecutive Sequence
- [leetcode 128]Longest consecutive sequence
- Leetcode 128 Longest Consecutive Sequence
- LeetCode 128 Longest Consecutive Sequence
- [Leetcode] #128 Longest Consecutive Sequence
- 《UNIX环境高级编程》十六网络IPC:套接字读书笔记
- Android实战——轻松集成百度自动更新SDK,只需3步
- POJ2195-Going Home(最小费用最大流)
- Objective-C中的同步线程的锁
- MySql(4)------SQL基础之DML(Data Manipulation Language)下的查询(select)语句
- LeetCode 128 Longest Consecutive Sequence (HashMap)
- 用户注册模块详解
- ng-include用法分析以及多标签页面的简单实现方式
- 使用ISE调用modelsim进行工程仿真时报错:Library std not found
- 基于creator的tableView和pageView
- ADO.NET执行存储过程
- 理清 Activity、View 及 Window 之间关系
- MyEclipse中常用的快捷键
- Android常用的工具方法(3)