当前位置: 首页 > news >正文

力扣热题100p128最长连续序列

下面是解法,只在存在的连续序列的最大数,才查询此连续序列的个数,别的直接跳过。比如(1,2,3,4)这一组分散在数组各个位置的数字,只在4的位置查询个数,在1,2,3的位置的时候都直接跳过。

如何实现这一点呢,遍历数组,遍历到那个数据(假如是x)的时候,检查x+1是否存在,如果存在,说明如果他是一个比较长的序列的一员的话,他不是最大的,我们直接跳过它,因为我们只在序列最大值的时候去查询连续序列的个数。如果x+1不存在,说明其就是最大的,进行查询。、

如何查询数组中连续序列的个数呢?前面我们确定了一个连续序列的最大值,那么我们只需要确定x-1是否存在,就可以了,然后计数,循环,直到x-1不存在。

为什么只在最大的数字进行查询呢?序列中的任意一个数字,我们对他进行左右两边的查询,都可以找到这个序列的长度,但是,会做很多无用功,这些无用功会让时间复杂度涨到O(n2),就不满足题目要求了。

class Solution {public int longestConsecutive(int[] nums) {Set<Integer> set = new HashSet<>();for (int num : nums) {set.add(num);}int longestNum=0;for (int num : set) {if (!set.contains(num +1)) {int currentNum=1;int current=num;while (set.contains(current-1)){current=current-1;currentNum+=1;}if (currentNum>longestNum){longestNum=currentNum;}}}return longestNum;}
}

http://www.dtcms.com/a/478911.html

相关文章:

  • 【LeetCode热题100(42/100)】将有序数组转换为二叉搜索树
  • google网站建设网站开发答辩ppt
  • 超越CNN:GCN如何重塑图像处理
  • A100云服务器租赁:边缘计算时代的算力新形态
  • 建设项目环评验收网站做网站都需要年服务费吗
  • js中 btoa 方法 和 atob方法介绍
  • 做网络写手 哪个网站比较好亚马逊deal网站怎么做
  • css布局的几种方式
  • 前端数值运算精度丢失问题及解决方案
  • 免费建站软件有哪些苏州建行网站首页
  • 极海APM32F107V6 移植FreeRTOS+CMSIS-RTOS V2
  • Centos Stream 8 搭建Cas Server
  • 营销型网站建设优化汽车电商网站建设
  • 网站建设中最基本的决策南昌网站建设和推广
  • 网页设计网站如何添加链接家庭网站建设
  • ModuleNotFoundError: No module named ‘conda_token‘
  • 长春哪家做网站做的好网站建设员是做什么的
  • Milvus部署在T4 GPU上,Dify检索性能可以提升多少?
  • 南阳手机网站推广h5网页设计软件
  • 戴森球的物理模拟
  • 基于springboot社区养老服务平台的设计与实现(附源码)
  • 晨光科技 网站建设北京优化网站
  • 简易水位报警器方案开发案例
  • 公司网站建设费用计入什么科目做网站主页
  • 最长子串和分配苹果问题
  • Ubuntu设置共享文件夹
  • 网站开发一个多少钱系统网站推广方案怎么做
  • 制作网站需要懂哪些重生北京上大学开网吧做网站的小说
  • 二级域名iis建立网站免费企业邮箱排名
  • Linux程序设计从入门到实战(价值198元)课程下载