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

横沥做网站免费发布信息网平台

横沥做网站,免费发布信息网平台,盐田做网站,国外专门做视频翻译网站吗给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出:4 解…

给定一个未排序的整数数组 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

示例 3:
输入:nums = [1,0,1,2]
输出:3

提示:
0 <= nums.length <= 105
-109 <= nums[i] <= 109


知识点:
HashMap、HashSet、数组、for、while


解:
由于题目要求时间复杂度为 O ( n ) O(n) O(n),因此无法使用Arrays.sort()进行排序,然后一个for循环进行判断。
根据#1和#49采用map的思路,这里也可以用HashMap先存储所有元素,而HashMap在这里就起到了去重的作用(更简单,可以使用HashSet,为了巩固HashMap操作,这里继续使用HashMap)。
这题核心思想是:找到序列的开头,对于例3,如果从1开始判断是否有连续的序列,得到[1,2],但接下来从0开始,会得到[0,1,2],这存在不必要的重复遍历。
因此,for循环遍历map的每个元素,只要这个元素有前驱(前一个连续的数字),就跳过这个数,遍历map中的下一个数。若找到了开头,那么我们用变量存储当前遍历的元素的后继(下一个连续的数字),while循环找到最大的后继。因为数字包括0,也就是可能从0开始,那么最终得到的next,表示的就是这个序列的长度。这里讲的都是针对某一个元素而言。那么我们要遍历所有元素,就要判断当前得到的这个长度(next-num)和最终返回的变量length哪个大,我们选择更大的那个数,作为length的值。
时间复杂度:外循环 O ( n ) O(n) O(n),而内循环必定只执行一次,因此内循环 O ( 1 ) O(1) O(1),从而总的为 O ( n ) O(n) O(n)
空间复杂度: O ( n ) O(n) O(n)

class Solution {public int longestConsecutive(int[] nums) {//将所有数字存入map,同时起到去重的作用。可用HashSet替代Map<Integer, Integer> map = new HashMap<>();int length = 0;for (int i = 0; i < nums.length; i++) {if (map.containsKey(nums[i])) {map.put(nums[i], map.get(nums[i]) + 1);} else {map.put(nums[i], 1);}}//遍历map的每个元素for (int num : map.keySet()) {//若存在前驱,表示当前遍历的不是开头,跳过这个数if (map.containsKey(num - 1)) {continue;}//此时,不存在前驱,当前遍历的是开头int next = num + 1; // 后继//只要存在后继,就while循环,找到最大的nextwhile (map.containsKey(next)) {next += 1;}// System.out.println("next: " + next);//获取最长序列的长度length = Math.max(length, next - num);}// System.out.println("length: " + length);return length;}
}
http://www.dtcms.com/wzjs/373945.html

相关文章:

  • 屋领网站固链网络营销都有哪些形式
  • 263企业邮箱修改密码网站seo优化方法
  • app多少钱长沙官网seo收费标准
  • access 网站源码海淀网站建设公司
  • wordpress建站免费教程青岛seo培训
  • 织梦商城网站源码重庆seo报价
  • 蒙古文网站建设工作情况汇报邹平县seo网页优化外包
  • 常州个人做网站百度官方免费下载安装
  • 手机网站建设哪儿好关键词优化课程
  • 建设独立网站需要什么手续网络流量分析工具
  • 深圳网站建设推荐q479185700顶上抖音推广怎么收费
  • 可以直接进网站正能量小米搜索关键词排名推广
  • 用凡科做网站有自己的域名环球网疫情最新消息
  • king 主题WordPressseo优化报告
  • 深圳网红打卡旅游景点青岛网站建设优化
  • 可以发外链的网站或平台有哪些seo优化百度技术排名教程
  • 网络工作室骗局立即优化在哪里
  • 专业做网站哪里有营销团队
  • 企业网站建设的具体需求小红书怎么做关键词排名优化
  • 继续教育网站怎么做不了作业搜索引擎收录
  • 网站建设合同制人员招聘手机seo关键词优化
  • 贵阳网站建设q479185700惠温州seo排名公司
  • 国内做赌博网站风险大吗最新国际新闻热点事件
  • 屏蔽蜘蛛网站还会被收录吗如何免费发布广告
  • 网站开发费用多少南宁网站制作
  • 网站怎么做3d商品浏览谷歌app下载
  • 动易 网站顶部导航 sitefactory近三天发生的大事
  • 网站开发需要学些什么网络营销的特点有哪些
  • 上海定制网站建设费用下载百度网盘app
  • 设计的网站有哪些专业技能培训机构