当前位置:Gxlcms > JavaScript > js构建二叉树进行数值数组的去重与优化详解

js构建二叉树进行数值数组的去重与优化详解

时间:2021-07-01 10:21:17 帮助过:6人阅读

这篇文章主要给大家介绍了关于js构建二叉树进行数值数组的去重与优化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面一起学习学习吧。

前言

本文主要介绍了关于js构建二叉树进行数值数组的去重与优化的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

常见两层循环实现数组去重

构建二叉树实现去重(仅适用于数值类型的数组)

将先前遍历过的元素,构建成二叉树,树中每个结点都满足:左子结点的值 < 当前结点的值 < 右子结点的值

这样优化了判断元素是否之前出现过的过程

若元素比当前结点大,只需要判断元素是否在结点的右子树中出现过即可

若元素比当前结点小,只需要判断元素是否在结点的左子树中出现过即可

优化思路一,记录最大最小值

记录已经插入元素的最大最小值,若比最大元素大,或最小元素小,则直接插入

优化思路二,构建红黑树

构建红黑树,平衡树的高度

有关红黑树的部分,请见红黑树的插入

其他去重方法

通过 Set 对象去重

通过 sort() + reduce() 方法去重

排序后比较相邻元素是否相同,若不同则添加至返回的数组中

值得注意的是,排序的时候,默认 compare(2, '2') 返回 0;而 reduce() 时,进行全等比较

通过 includes() + map() 方法去重

通过 includes() + reduce() 方法去重

通过对象的键值对 + JSON 对象方法去重

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

jquery1.8版本使用ajax实现微信调用出现的问题分析及解决办法

编写轻量ajax组件01-与webform平台上的各种实现方式比较

Jquery Ajax请求文件下载操作失败的原因分析及解决办法

以上就是js构建二叉树进行数值数组的去重与优化详解的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行