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

海口平台公司站内优化

海口平台公司,站内优化,五星酒店网站建设方案,电子商务网站建设如何可以用哈希表解决,先遍历选取每一个元素num作为起始值,然后判断num1是否也在数组中,如果在就序列长度1,但是用哈希表这么做实际上时间复杂度为o(n^2),为了降低到n,每一个元素只能访问…

 可以用哈希表解决,先遍历选取每一个元素num作为起始值,然后判断num+1是否也在数组中,如果在就序列长度+1,但是用哈希表这么做实际上时间复杂度为o(n^2),为了降低到n,每一个元素只能访问一次,那么也就是如果num做为起始值,那么他的前驱num-1是不能在数组中的,这样就可以避免重复访问

class Solution {
public:int longestConsecutive(vector<int>& nums) {unordered_set<int> numSet;for(const int& num:nums)numSet.insert(num);int result=0;for(const int& num:nums){if(numSet.find(num-1)!=numSet.end())continue;else{int len=1;int currentNum=num;while(numSet.find(currentNum+1)!=numSet.end()){len++;currentNum++;}result=max(result,len);}}return result;}
};

然而虽然代码和官方差不多还是有用例超时,对于如下这种有m个0的如果作为起始值,后续还有1,2,3,4让其进入内层循环的,时间复杂度为o(mn),为了避免这种情况还得对0去重

 

class Solution {
public:int longestConsecutive(vector<int>& nums) {unordered_set<int> numSet;for(const int& num:nums)numSet.insert(num);int result=0;unordered_set<int> remDup;for(const int& num:nums){if(numSet.find(num-1)!=numSet.end()||remDup.find(num)!=remDup.end())continue;else{remDup.insert(num);int len=1;int currentNum=num;while(numSet.find(currentNum+1)!=numSet.end()){len++;currentNum++;}result=max(result,len);}}return result;}
};

 

 

http://www.dtcms.com/wzjs/137165.html

相关文章:

  • 厦门做网站排名建设网页
  • wordpress可注册地址北京seo关键词排名优化软件
  • 亚马逊一般在哪些网站上做推广站长推广网
  • 个人网站备案可以做项目网站线上销售怎么做推广
  • 深圳做网站排名公司中国目前最好的搜索引擎
  • 小型网站开发西安百度seo代理
  • 珠海企业网站建站谷歌商店下载官方
  • 做竞价网站用什么系统好营销咨询顾问
  • 兰溪好品质高端网站设计哈尔滨网络优化公司有哪些
  • 动态电商网站怎么做谷歌排名推广
  • 上海html5网站建设公司网站制作教程
  • 好看的幼儿园网站模板嘉兴seo优化
  • 网站开发师招聘全国教育培训机构平台
  • 敦煌网站做外贸怎样临沂seo推广
  • 南通教育平台网站建设搜狗收录入口
  • 怎样看网站是什么语言做的网络seo培训
  • 铁路学校都有哪些学校seo推广网络
  • 网站域名 续费百度推广搜索排名
  • 耒阳网站建设新手怎么入行sem
  • wordpress首页固定页面厦门零基础学seo
  • 网站如何做传输网盘天津做网站的网络公司
  • 工程机械外贸网站建设营销型网站建设模板
  • 如何 做网站网站大全
  • 做电器哪个网站好郑州本地seo顾问
  • 网站开发7个基本流程成人大学报名官网入口
  • 网站建设的域名注册中国公关公司前十名
  • 网站开发款计入什么科目周口网络推广公司
  • 贵阳网站制作cncolour企业营销策划是做什么的
  • 奉贤庄行网站建设加盟教育培训哪个好
  • 网站建设定制设计人民网舆情数据中心官网