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

美发网站 源代码交易平台

美发网站 源代码,交易平台,如何做公司网站简介,邢台各种类型网站建设售后完善(一)问题描述 128. 最长连续序列 - 力扣(LeetCode)128. 最长连续序列 - 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复…

(一)问题描述

128. 最长连续序列 - 力扣(LeetCode)128. 最长连续序列 - 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9 提示: * 0 <= nums.length <= 105 * -109 <= nums[i] <= 109icon-default.png?t=O83Ahttps://leetcode.cn/problems/longest-consecutive-sequence/description/?envType=study-plan-v2&envId=top-100-liked给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

示例 1:

输入:nums = [100,4,200,1,3,2]
输出:4
解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

示例 2:

输入:nums = [0,3,7,2,5,8,4,6,0,1]
输出:9

提示:

  • 0 <= nums.length <= 105
  • -109 <= nums[i] <= 109

 (二)解决思路

这道题目要求找连续序列,同时不要求序列位置连续,即查找数值大小上连续的元素有几个。那么使用哈希结构中的集合(Set)是最合适的:可以去除数组中重复的元素,又能快速找到符合条件的元素

思路很简单:

  • 找到序列的起始元素(即序列当中数值最小的元素)
  • 不断找到该序列中的下一个元素(比当前元素大一),每找到一个,序列长度就加一
  • 一个数组里可能包含多个序列,比较得到的多个长度取最大,就是当前数组中的最大连续序列长度。
class Solution {public int longestConsecutive(int[] nums) {//将给定数组转换为集合Set<Integer> s=new HashSet<>();for(int n : nums){s.add(n);}//用来记录序列长度的变量int longestStreak=0;//遍历集合中的元素for(Integer sn : s){//当前已经统计的序列长度,起始时只有一个元素int currentStreak=1;//当前元素的数值,起始时为当前遍历到的元素snint currentNum=sn;//序列当中没有比sn小1的元素,说明sn是一个序列的起始点if(!s.contains(sn-1)){   //只要有比sn大一的元素,就说明序列还没有结束,不断找序列中的下一个元素,同时序列长度加一while(s.contains(currentNum+1)){currentStreak+=1;currentNum+=1;}//取所有序列长度的最大值longestStreak=Math.max(longestStreak,currentStreak);}}return longestStreak;}
}

 (三)易错点

        这道题要求时间复杂度为O(n),那么就不能有排序,只要针对数组排序,时间复杂度就会大于O(n)。所以这道题解题的关键是想到找序列的起点,以及怎么找序列的节点。如果不找序列的起点,是没有办法按顺序累加元素的。

        另外也不是循环嵌套,时间复杂度就一定大于O(n)的哈。像这道题里面第二层循环的执行是有条件的,时间复杂度还是O(n)。

http://www.ds6.com.cn/news/80676.html

相关文章:

  • 代理小企业网站建设关键词在线查询
  • 网站建设课程设计报告php培训班线上优化
  • 网页设计作业电影介绍网站四川省人民政府官网
  • wordpress简约文艺惠州seo按天计费
  • 网站ssl证书怎么做微信朋友圈广告推广代理
  • 沧州免费网站建设网站推广方案范文
  • 做网站 珠海中国教育培训网
  • 昆明做网站建设的公司哪家好外贸推广优化公司
  • 网站优化说明做网站建设优化的公司排名
  • 做网站推广好吗站长推广工具
  • 共同建设网站协议重庆森林经典台词罐头
  • 龙采哈尔滨建站公司黑马it培训班出来现状
  • 如何做彩票网站公司网站策划宣传
  • 成都外贸网站建设安全优化大师下载
  • 网站项目有需要什么技术支持免费注册网站
  • 龙岗住房和建设局网站电脑培训学校在哪里
  • 五八同城客服网站怎么做360站长工具seo
  • 网站建设工资郑州搜索引擎关键词seo优化公司
  • wordpress商城 注册安卓系统优化app
  • 网站备案需要钱吗网络营销广告
  • 建立网站的步骤有哪些对网站和网页的认识
  • 做网站网络公司无收入上海百度seo
  • 仿糗事百科wordpress小吴seo博客
  • 网络营销推广的方法有哪些?郑州seo推广优化
  • 可视化新闻网站开发平台站长seo工具
  • 做设计适合关注的网站河南网站推广优化
  • 哪里可以做网赚网站seo赚钱
  • 越南做企业网站网站制作多少钱一个
  • 怎样做限制只访问一个网站百度app推广方法
  • 神华集团两学一做登陆网站网站推广公司排行榜