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

娱乐网站制作武汉搜索推广

娱乐网站制作,武汉搜索推广,手机网站广告,java在线编程网站Day 26 题目描述 思路 定义一个map用来存放每个元素以及它对应的序号从前向后遍历数组如果该元素存在于map(说明满足了重复元素的条件),用当前元素的序号值减去map中存放的序号值(因为是从前遍历的所以当前元素序号一定大于存放…

Day 26

题目描述

在这里插入图片描述

思路

  1. 定义一个map用来存放每个元素以及它对应的序号
  2. 从前向后遍历数组
  3. 如果该元素存在于map(说明满足了重复元素的条件),用当前元素的序号值减去map中存放的序号值(因为是从前遍历的所以当前元素序号一定大于存放的序号)。
  4. 满足条件就返回true。
  5. 不满足条件,就将当前的元素序号替换近map(因为如果后面出现这个元素的重复值,与当前元素的序号值相减比更前面的元素相减更小)。
  6. 不存在,就将该元素的值放入map中。
  7. 循环结束,说明没有满足条件的,返回false。
class Solution {public boolean containsNearbyDuplicate(int[] nums, int k) {Map<Integer,Integer>map=new HashMap<>();int j=0;for(int i=0;i<nums.length;i++){if(map.containsKey(nums[i])){j=map.get(nums[i]);if(i-j<=k){return true;}else{map.put(nums[i],i);}}else{map.put(nums[i],i);}}return false;}
}

题目描述

在这里插入图片描述

思路

初次思路:考虑到样例中,重复元素只计数一次,于是采取set来存储,思路如下:

  1. 定义一个TreeSet(原因在于TreeSet可以对于存放元素按值的大小排序)
  2. 遍历数组,将元素插入到TreeSet
  3. 遍历TreeSet,取出元素i
  4. 如果i-1不存在于集合,i+1存在于集合,说明该元素就是起始元素,设置长度sum=1
  5. 如果i-1存在于集合,i+1也存在于集合,说明这个元素在一段连续区间中,sum++
  6. 如果i-1存在集合,i+1不存在于集合,说明这是一段连续区间的结尾,sum++进入判断(注:由于TreeSet是按数值大小存放的,所以当找到一个开头和一个结尾,中间所有的元素都是连续的
  7. 如果sum>max,就让max等于sum
  8. 循环结束,返回max
class Solution {public int longestConsecutive(int[] nums) {if(nums.length==0){return 0;}int max=1,sum=0;Set<Integer> map=new TreeSet<>();for(int i=0;i<nums.length;i++){map.add(nums[i]);}for(Integer i:map){if(map.contains(i+1)&&!map.contains(i-1)){//起始点sum=1;}else if(map.contains(i+1)&&map.contains(i-1)){//区间sum++;}else if(map.contains(i-1)&&!map.contains(i+1)){//结束点sum++;if(sum>max){max=sum;}}}return max;}
}

进阶思路:以上做法,虽然通过,但是我的时间复杂度很高,我感觉原因在于TreeSet的插入和遍历效率太低了,看过官方题解后,有以下做法。

  1. 使用Hashset存放数组元素(去重)
  2. 遍历HashSet,判断该节点i是否为头节点(及i-1是否存在于hashset)
  3. 不存在,说明为头节点,循环向后遍历x,直到找到不存在x+1的元素,sum同时增加
  4. 比较sum和max,将较大的值存放到max
  5. 如果该节点不是头节点,就不处理
  6. 最后返回max
class Solution {public int longestConsecutive(int[] nums) {Set<Integer> set = new HashSet<Integer>();for (int num : nums) {set.add(num);}int maxs = 0;for (int num : set) {if (!set.contains(num - 1)) {int tou = num;int len = 1;while (set.contains(tou + 1)) {tou ++;len ++;}maxs = Math.max(maxs, len);}}return maxs;}
}
http://www.dtcms.com/wzjs/505335.html

相关文章:

  • WordPress主题设置保存seo平台是什么
  • 网站建设的一般步骤包括小程序拉新推广平台
  • 凡客精选长沙专业竞价优化首选
  • WordPress网页加载时间seo优化标题
  • 建筑通seo建站公司
  • 阿里云 个人网站宁波seo费用
  • 商务网站建设总结如何建立网上销售平台
  • wordpress和卡密平台上海seo公司排名
  • 龙岩网站设计 信任推商吧做词百度信息流广告怎么投放
  • 企业网站建设哪家效果好域名权重
  • 做网站培训怎么知道自己的域名
  • 沈阳疫情来势凶猛广州网站营销seo费用
  • 北仑网站建设29gz如何推广一个项目
  • 宁波网站推广厂家电话南沙seo培训
  • 国家高新技术企业证书图片排名seo怎么样
  • 网站备案要买备案号网站建设报价
  • wordpress图片懒加载js搜索引擎seo如何优化
  • 做网站的 深圳百度营销官网
  • 淘宝直接怎么做网站怎样创建网站或者网址
  • 独立站工具目前在哪个平台做推广好
  • 农场会员营销网站建设西安市网站
  • mvc5做博客网站seo辅助优化工具
  • vs网站界面是什么做的互联网营销师培训机构哪家好
  • asp 做购物网站优化精灵
  • 注册了域名 网站怎么做长春百度推广公司
  • 广州城乡建设部网站首页搜索引擎优化作业
  • 开发网站平台有人看片吗免费观看视频
  • 做网站布局的时候需要把导航复制到每个页面吗排名检测
  • 自已电脑做网站服务器一诺网络推广公司
  • 武汉骑士网络做网站seo关键词挖掘