LeetCode Longest Consecutive Sequence
来源:互联网 发布:浙师大行知学院计财处 编辑:程序博客网 时间:2024/06/04 17:50
LeetCode解题之Longest Consecutive Sequence
原题
给定一组无序的整数,找出其中连续整数的最长长度。
注意点:
- 算法时间复杂度为O(n)
例子:
输入: nums = [100, 4, 200, 1, 3, 2]
输出: 4 (连续整数为[1,2,3,4])
解题思路
采用了哈希法,所有的整数放入集合中,取出某一个元素向两边扩展,如果两边的元素也在集合中,从集合中去除这些元素的同时继续判断外围的元素,这样可以得到每一个连续整数组的长度。从这些长度中找到最长的长度。
AC源码
class Solution(object): def longestConsecutive(self, nums): """ :type nums: List[int] :rtype: int """ numset, maxlen = set(nums), 0 for n in set(nums): currlen, tmp = 1, n + 1 while tmp in numset: currlen += 1 numset.discard(tmp) tmp += 1 tmp = n - 1 while tmp in numset: currlen += 1 numset.discard(tmp) tmp -= 1 maxlen = max(maxlen, currlen) return maxlenif __name__ == "__main__": assert Solution().longestConsecutive([100, 4, 200, 1, 3, 2]) == 4
欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源码。
0 0
- Leetcode : Longest Consecutive Sequence
- [Leetcode] Longest Consecutive Sequence
- [leetcode] longest consecutive sequence
- 【leetcode】Longest Consecutive Sequence
- LeetCode - Longest Consecutive Sequence
- [LeetCode]Longest Consecutive Sequence
- leetcode:Longest Consecutive Sequence
- [Leetcode]Longest Consecutive Sequence
- [leetcode]Longest Consecutive Sequence
- leetcode Longest Consecutive Sequence
- Leetcode: Longest Consecutive Sequence
- LeetCode:Longest Consecutive Sequence
- [leetcode] Longest Consecutive Sequence
- LeetCode-Longest Consecutive Sequence
- LeetCode - Longest Consecutive Sequence
- [LeetCode] longest consecutive sequence
- LeetCode | Longest Consecutive Sequence
- [leetcode]Longest Consecutive Sequence
- Bootstrap Multiselect 动态二联赋值 支持多选
- Android实现点击两次返回键退出
- java 代码重构
- c语言编写简单shell解释器
- Android AsyncTask完全解析,带你从源码的角度彻底理解
- LeetCode Longest Consecutive Sequence
- 用Golang写一个搜索引擎
- 友谊的小船,说翻就翻
- 自定义View的总结
- 编写一个程序,判断系统是big endian,还是little endian
- 搭建一个简单的Struts2+Spring+Hibernate框架
- java中的集合框架
- 07-git和svn项目版本管理的比较
- T图像处理简介