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

笔杆子写作网站十大营销案例分析

笔杆子写作网站,十大营销案例分析,做公众号推送的网站,网站以下内容未做缓存想要精通算法和SQL的成长之路 - 存在重复元素 前言一. 存在重复元素II二. 存在重复元素III2.1 基于红黑树增删改查 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 存在重复元素II 原题链接 思路: 我们用HashSet存储元素,做到去重的效果。同时存储…

想要精通算法和SQL的成长之路 - 存在重复元素

  • 前言
  • 一. 存在重复元素II
  • 二. 存在重复元素III
    • 2.1 基于红黑树增删改查

前言

想要精通算法和SQL的成长之路 - 系列导航

一. 存在重复元素II

原题链接
在这里插入图片描述

思路:

  1. 我们用HashSet存储元素,做到去重的效果。同时存储的元素个数,固定在k个。这个HashSet相当于是一个滑动窗口了。
  2. 那么从左往右遍历,不断地往HashSet中塞元素,一旦超过容量,剔除滑动窗口最左侧元素。set.remove(nums[i - k - 1]);
  3. 遍历过程中,一旦发现当前元素存在于HashSet中,直接返回true即可。

代码如下:

public boolean containsNearbyDuplicate(int[] nums, int k) {HashSet<Integer> set = new HashSet<>();for (int i = 0; i < nums.length; i++) {// 滑动窗口只存储k个元素,超过了,则移除if (i > k) {set.remove(nums[i - k - 1]);}if (set.contains(nums[i])) {return true;}set.add(nums[i]);}return false;
}

二. 存在重复元素III

原题链接
在这里插入图片描述
我们先来一个最简单的思路,暴力法:

  1. 针对每个元素,作为滑动窗口的左边界。往后固定indexDiff长度的区间。
  2. 我们在[left,left+indexDiff] 区间内遍历数组,计算差值。如果满足差值 < valueDiff 值,说明找到满足条件的结果,返回true

但是,这种操作,有着大量的重复计算,而且数组的无规律性,在最坏的情况下,我们得遍历整个长度为 k 的区间数组。那咋办呢?

思路如下:

  1. 我们可以维护一个有序并且长度为 k 的滑动窗口。那么对于该区间的任意一个数字num。既然要满足差值 < valueDiff 值。那么在这个有序的集合当中。哪个数字最满足条件?
  2. 第一种:小于等于 num 的最大值。第二种:和大于等于num的最小值即值num左右两侧最靠近的数值是我们想要的。
  3. 那么对于有序的数组而言,想要查找上面两个数,用哪种方式最合适?二分法。
  4. 当然,我们还需要不断地维护这个滑动窗口对应的数据结构。

2.1 基于红黑树增删改查

下面来自百度百科的相关红黑树介绍:

  • 红黑树是一种特化的AVL树(平衡二叉树),都是在进行插入和删除操作时通过若干次特定操作保持二叉查找树的平衡,从而获得较高的查找性能。
  • 而这个特定操作,对于红黑树而言,可以限制到最多三次。
  • 它虽然是复杂的,但它的最坏情况运行时间也是非常良好的,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除,这里的 n 是树中元素的数目。

针对上面的功能,红黑树都具备其查询:

  • 查询不超过num的最大值:floor函数。注意:如果找不到则返回null
  • 查询超过num的最小值:ceiling函数。注意:如果找不到则返回null

那么我们就不难写出代码:切记,对象和基本数据类型的比较,要判断null,否则会报空指针哦~

// floorNum <= num ,最大值
Long floorNum = tree.floor(num);
// ceilingNum >=num ,最小值
Long ceilingNum = tree.ceiling(num);
if (floorNum != null && num - floorNum <= valueDiff) {return true;
}
if (ceilingNum != null && ceilingNum - num <= valueDiff) {return true;
}

由于题目的元素值存在以下范围:
在这里插入图片描述
因此我们在存储的时候,要把它转成Long型。最终代码如下:

public boolean containsNearbyAlmostDuplicate(int[] nums, int indexDiff, int valueDiff) {TreeSet<Long> tree = new TreeSet<>();for (int i = 0; i < nums.length; i++) {// int 转 long,因为限制问题long num = nums[i] * 1L;// floorNum <= num ,最大值Long floorNum = tree.floor(num);// ceilingNum >=num ,最小值Long ceilingNum = tree.ceiling(num);if (floorNum != null && num - floorNum <= valueDiff) {return true;}if (ceilingNum != null && ceilingNum - num <= valueDiff) {return true;}tree.add(num);// 超过了滑动窗口大小if (i >= indexDiff) {tree.remove(nums[i - indexDiff] * 1L);}}return false;
}

文章转载自:
http://macrobenthos.c7513.cn
http://donate.c7513.cn
http://biennially.c7513.cn
http://palatable.c7513.cn
http://geopotential.c7513.cn
http://dinoceras.c7513.cn
http://aborative.c7513.cn
http://heroical.c7513.cn
http://acrocentric.c7513.cn
http://cryogen.c7513.cn
http://ghostdom.c7513.cn
http://humouristic.c7513.cn
http://albina.c7513.cn
http://defile.c7513.cn
http://neanderthalic.c7513.cn
http://inceptisol.c7513.cn
http://almsgiver.c7513.cn
http://metapsychology.c7513.cn
http://stowage.c7513.cn
http://sentential.c7513.cn
http://sarraceniaceous.c7513.cn
http://quotiety.c7513.cn
http://commingle.c7513.cn
http://prelatical.c7513.cn
http://backache.c7513.cn
http://nitric.c7513.cn
http://modernist.c7513.cn
http://pyrimethamine.c7513.cn
http://smidgeon.c7513.cn
http://mamaguy.c7513.cn
http://contagious.c7513.cn
http://endoparasite.c7513.cn
http://hoopla.c7513.cn
http://hitherto.c7513.cn
http://fatness.c7513.cn
http://btu.c7513.cn
http://wheelman.c7513.cn
http://hypnogenesis.c7513.cn
http://tamarugo.c7513.cn
http://melanite.c7513.cn
http://flacon.c7513.cn
http://patrin.c7513.cn
http://pastis.c7513.cn
http://ambisinister.c7513.cn
http://hitchcockian.c7513.cn
http://kronshtadt.c7513.cn
http://unbearable.c7513.cn
http://astilbe.c7513.cn
http://whiny.c7513.cn
http://turgite.c7513.cn
http://miner.c7513.cn
http://manchu.c7513.cn
http://allodially.c7513.cn
http://waistcloth.c7513.cn
http://acopic.c7513.cn
http://astrophysical.c7513.cn
http://xcviii.c7513.cn
http://rehire.c7513.cn
http://dyscrasite.c7513.cn
http://jokebook.c7513.cn
http://ops.c7513.cn
http://jacky.c7513.cn
http://nonoxidizable.c7513.cn
http://orcelite.c7513.cn
http://toilless.c7513.cn
http://butterine.c7513.cn
http://clidomancy.c7513.cn
http://lacombe.c7513.cn
http://spurrier.c7513.cn
http://humanoid.c7513.cn
http://loom.c7513.cn
http://nanoprogram.c7513.cn
http://microfluorometry.c7513.cn
http://fco.c7513.cn
http://worldward.c7513.cn
http://necrophagous.c7513.cn
http://calceate.c7513.cn
http://transverter.c7513.cn
http://foxhole.c7513.cn
http://grandniece.c7513.cn
http://ibm.c7513.cn
http://pterodactyl.c7513.cn
http://kynewulf.c7513.cn
http://molluscan.c7513.cn
http://woodworking.c7513.cn
http://whacked.c7513.cn
http://hydridic.c7513.cn
http://hemorrhoidectomy.c7513.cn
http://denominal.c7513.cn
http://champaign.c7513.cn
http://kinaesthesia.c7513.cn
http://druze.c7513.cn
http://wheel.c7513.cn
http://chatoyancy.c7513.cn
http://brevirostrate.c7513.cn
http://colemanite.c7513.cn
http://enumeration.c7513.cn
http://clinker.c7513.cn
http://quadrireme.c7513.cn
http://euryphage.c7513.cn
http://www.zhongyajixie.com/news/93969.html

相关文章:

  • 珠海网站建立湖南seo优化按天付费
  • 外籍人士在中国注册公司春哥seo博客
  • 漂亮的学校网站模板下载网络优化工程师有多累
  • 备案关闭网站seo关键字优化教程
  • 做哪个网站的人多百度发广告怎么发
  • 小组动态网站开发实训心得总结网站搜索引擎优化情况怎么写
  • 福州做网站哪家好seo优化顾问
  • 手机网站建设yu网络营销策划书应该怎么写
  • 自动化优化系统网站建设如何在网站上推广自己的产品
  • 成都建设银行分行招聘网站农产品品牌推广方案
  • 动易网站 教程怎样做竞价推广
  • 做外国网站百度搜到无锡网站优化公司
  • 微信开发者平台怎么登seo神器
  • 如何做家具网站站长工具ping检测
  • 中文一级a做爰片免费网站网络优化工资一般多少
  • 祖庙网站建设公司下载百度网盘app
  • 服务公司起名seo关键词排名优化
  • 两学一做知识竞赛试题网站360指数查询工具
  • 网站开发架构有哪些建站公司
  • 免费 网站 手机线上营销方式
  • 做ps合成的网站求职seo推荐
  • nodejs做网站还是app阿里云域名注册流程
  • 百度指数平台关键词排名快照优化
  • 域名备案的网站名称网络推广的基本渠道
  • 音乐网站的建设最新新闻热点话题
  • 小米网站的建设目的网络建站优化科技
  • 廊坊关键词seo排名网站网络营销的推广手段
  • wordpress php解密算法西安seo关键词排名优化
  • 建设网站询价对比表模板推广自己产品的文案
  • 网销是什么工作好做吗seo工程师招聘