当前位置:网站首页 > Java基础 > 正文

java循环基础理论题



LeetCode热题100之第三题

3. 最长连续序列

类型:中等

题目:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

示例:

在这里插入图片描述

这道题我是根据B站:华南溜达虎的视频教学求解出来的,这里感谢一下华南溜达虎大师,嗯嗯,投币、收藏、关注已奉上!!
下面是具体的视频教学链接,讲的真的挺好,通俗易懂,感兴趣的同学或朋友可以看看。

视频链接(请点击!)

好了,下面说一下他讲解的思路,嗯,学到手里的就是自己的了!!

解题思路:

先不管这个最长序列怎么求,这道题的重点在于如何确定一个序列。就用题目中所给的nums数组为例,nums = [100, 4, 200,1, 3, 2] ,很明显数组中有6个元素。首先看看过程是怎么样的:

在这里插入图片描述
对于100这个数据元素,如何判断它的序列呢?首先我们要确定它是不是一个序列的起始点,即是不是序列中最左边的那一个数。怎么判断,就从原始数组中寻找有没有100-1=99,这个元素,如果没有说明100就是一个序列的起始点,然后就开始从100之后开始寻找有没有100+1=101呢?也没有说明100这个元素的最长连续序列就是1,同理分析剩余5个元素,分析过程如下:

4:数组中有3,说明不是起始点,不用管
200:数组中没有199,说明是一个序列的起始点,要从200之后开始寻找,有没有201,没有则长度为1 java循环基础理论题
1:数组中没有0,说明是起始点,从1之后开始寻找,有2,有3,有4,没有5,即最大序列长度是:1 2 3 4,即为4
3:数组中有2,说明不是起始点,不用管
2:数组中有1,不是起始点,不用管

下面是具体的Java程序:

 

下面可爱的图片只用于装饰网站,不用于任何商业活动!!!

  • 上一篇: java基础面试之线程
  • 下一篇: java基础大题
  • 版权声明


    相关文章:

  • java基础面试之线程2024-11-03 15:26:00
  • java基础问啥2024-11-03 15:26:00
  • (java基础2024-11-03 15:26:00
  • java基础实现购物车2024-11-03 15:26:00
  • 学过java基础简历要怎么写2024-11-03 15:26:00
  • java基础大题2024-11-03 15:26:00
  • java基础单例模式2024-11-03 15:26:00
  • java学了基础不会做项目2024-11-03 15:26:00
  • Java基础教程慕课版笔记2024-11-03 15:26:00
  • java开发环境熟悉及基础练习2024-11-03 15:26:00