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

青浦网站开发友链互换平台推荐

青浦网站开发,友链互换平台推荐,100种班服设计图,免费空间建站网站推荐我这个方法有点投机取巧了,题目说时间复杂度最多O(n),而我调用了Arrays.sort()方法,他的时间复杂度是n*log(n),但是AC了,这样的话这道题还是非常简单的,创建一个Hashmap,以nums数组的元素作为ke…

 我这个方法有点投机取巧了,题目说时间复杂度最多O(n),而我调用了Arrays.sort()方法,他的时间复杂度是n*log(n),但是AC了,这样的话这道题还是非常简单的,创建一个Hashmap,以nums数组的元素作为key,以这个元素是连续序列中的第几个作为value,先把数组排一下序,然后从第一个开始往后遍历,如果map中有nums[i]这个key,可以直接跳过看下一个元素,如果没有这个key那就看有没有nums[i]-1这个key,也就是看nums[i]前面这个数有没有在数组中,如果有拿到这个nums[i]-1这个key的value,说明nums[i]-1在序列中的第value个,那么nums[i]就在序列中的第value+1个,map.put(nums[i],value+1),同时维护一个ans,表示数组中最大的序列,看看value+1是不是比ans大,如果是则更新ans。如果map中没有nums[i]-1这个key,说明nums[i]前面的序列已经断掉了,以num[i]为起点重新建一个序列,那么num[i]就是序列中的第1个,所以map.put(nums[i],1),以下是我的代码:

class Solution {public int longestConsecutive(int[] nums) {if(nums.length == 0)return 0;HashMap<Integer,Integer> map = new HashMap<>();int ans =1;Arrays.sort(nums);for(int i=0;i<nums.length;i++){if(map.containsKey(nums[i])){continue;}else{if(map.containsKey(nums[i]-1)){int value = map.get(nums[i-1])+1;map.put(nums[i],value);if(value > ans)ans=value;}else{map.put(nums[i],1);}} }return ans;}
}

看了一下题解,题解用的是Hashset。

class Solution {public int longestConsecutive(int[] nums) {Set<Integer> num_set = new HashSet<Integer>();for (int num : nums) {num_set.add(num);}int longestStreak = 0;for (int num : num_set) {if (!num_set.contains(num - 1)) {int currentNum = num;int currentStreak = 1;while (num_set.contains(currentNum + 1)) {currentNum += 1;currentStreak += 1;}longestStreak = Math.max(longestStreak, currentStreak);}}return longestStreak;}
}

他先把数组中的所有数全放进set里面,然后遍历set中的num,看看set中有没有num的前1个数num-1,如果没有,说明num就是一个序列的起点,把这个序列的长度先初始为1,然后用一个while循环去看看有没有num的下一个数,如果有的话,序列长度+1,num变为他的下一个数,没有的话循环结束,每次循环都更新longestStreak,最后返回longestStreak即可。

说实话我看完也有点疑惑,外层这个循环已经是O(n)了,里面还有一个while循环,这不是超了吗?好像是for里面只有几个序列的起点会进去,然后while里面也只有起点后面的几个数会进去,然后时间复杂度是O(2n)也就是O(n)。

http://www.hkea.cn/news/500231/

相关文章:

  • pc官方网站视频专用客户端app
  • 成都哪家做网站建设比较好搜索关键词排名查询
  • 无锡网站优化推广广州网站推广运营
  • 电子商务网站开发的步骤短视频seo排名系统
  • 如何用模板做网站视频河北电子商务seo
  • 动态网站代码设计做小程序的公司
  • 网站建设软件开发的新闻北京关键词优化报价
  • 在上海做兼职在哪个网站好百度售后电话人工服务
  • 深圳网站开发招聘谁能给我个网址
  • 长沙做个网站多少钱怎样免费给自己的公司做网站
  • wordpress to微博优化营商环境条例
  • 做外贸通常用哪些网站seo网站监测
  • 电子商务网站建设解决方案必应搜索引擎
  • 企业网页制作与网站设计南京seo优化培训
  • sqlite开发网站想做网络推广的公司
  • 网页设计作业在线网站首页seo教程seo优化
  • 做个网站多钱域名备案查询系统
  • 饰品网站模板官网seo关键词排名系统
  • 文学网站做编辑百度笔记排名优化
  • 公司网站开发语言如何优化百度seo排名
  • 做网站较好的框架惠州百度推广排名
  • 网站建设和运营的课程推广软文发稿
  • 杭州企业网站建设方案ui培训
  • 个人站长做哪些网站好seo优化设计
  • 小白学做搭建网站软文街官方网站
  • 网站模板 可做采集站市场营销咨询
  • 家居网站建设素材天眼查询个人信息
  • 杭州专业网站排名优化交换链接的例子
  • 网站建设和数据容量整合seo的培训课程
  • 深圳 网站制作 哪家百度搜索排名优化哪家好