博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 128. Longest Consecutive Sequence
阅读量:5025 次
发布时间:2019-06-12

本文共 1571 字,大约阅读时间需要 5 分钟。

不定期更新leetcode解题java答案。

采用pick one的方式选择题目。

题目的意思是给定一个无序数组,寻找最长有序连续数组的长度。

最初是思路是假定输入数组的数字范围在-10000~10000间,创建一个空间为2w的数组,赋值为0,遍历给定数组,将数组值视为创建数组下标,将创建数组对应值+1;最后遍历创建数组获得最大长度。

代码如下:

1 public class Solution { 2     public int longestConsecutive(int[] nums) { 3         int[] count = new int[20000]; 4         for(int i = 0; i < 20000; i++) 5             count[i] = 0; 6         for(int i = 0; i < nums.length; i++) 7             count[nums[i] + 10000]++; 8          9         int max = 0;10         int tmp = 0;11         for(int i = 0; i < 20000; i++){12             if(count[i] != 0)13                 tmp++;14             else{15                 max = tmp > max ? tmp : max;16                 tmp = 0;17             }18         }19         20         return max;21     }22 }

理论来讲,思路是可行的,然而个人加入了限制条件,那就是输入在-10000~10000,一个测试用例将本思路打屎。

 

提示中希望使用union find方法来进行题目的解答。数据结构没好好学,看了半天没看懂,先偷懒拿个简单方法处理下。思路是将数组排序,然后统计最长连续子序列。逻辑很简单,虽然题目中加入了限制,时间复杂度在O(n),但是具体测试时没有对此进行限制,并且结果也出乎意料的快。代码如下:

1 public class Solution { 2     public int longestConsecutive(int[] nums) { 3         Arrays.sort(nums); 4         int max = 1; 5         int tmp = 1; 6         for(int i = 1; i <= nums.length; i++){ 7             max = tmp > max ? tmp : max; 8             if(i == nums.length) 9                 break;10             if(nums[i] == nums[i - 1]){}11             else if(nums[i] - nums[i - 1] == 1)12                 tmp++;13             else14                 tmp = 1;15         }16         17         return max;18     }19 }

抽空将Union find方法理解下,会再对本题加一篇说明。

转载于:https://www.cnblogs.com/zslhq/p/5567285.html

你可能感兴趣的文章
利用运行时给模型赋值
查看>>
归并排序求逆序对
查看>>
SQL2008用sql语句给字段添加说明
查看>>
JavaScript的对象创建
查看>>
树形DP(统计直径的条数 HDU3534)
查看>>
python学习之路(25)
查看>>
c++中拷贝构造函数、默认无参构造函数、析构函数的理解
查看>>
ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表
查看>>
kaggle竞赛
查看>>
区块链入门教程
查看>>
域 搭建OU 组织单元
查看>>
静态方法中调用非静态方法
查看>>
npm常用命令
查看>>
南海区行政审批管理系统接口规范v0.3(规划)4.2.【queryExpireList】当天到期业务查询...
查看>>
[置顶] 细说Cookies
查看>>
[wp7软件]wp7~~新闻资讯,阅读软件下载大全! 集合贴~~~
查看>>
生成指定位数随机数的方法
查看>>
java的垃圾回收
查看>>
Essential C++学习笔记
查看>>
python+selenium进行简单验证码获取
查看>>