前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用数组实现数据去重

使用数组实现数据去重

作者头像
暮雨
发布2019-08-29 16:15:06
6340
发布2019-08-29 16:15:06
举报
文章被收录于专栏:云端漫步云端漫步

在上一篇数据去重文中,介绍了使用hashtable这种数据结构实现对一组数据的去重操作,那么这种方式是否存在优化的空间?先来看一道题,给定一组整数无序数组,获取重复的数据 如:[1,2,3,1] 在数据去重第一篇文章中,使用的hashtable, hashtable这种数据结构内部实现上也借用了数组,那么我们是否可以直接使用数组呢?

  1. 首先要保证去重的数组是一组正整数,并且数组最大值<整数n
  2. 声明长度为n的bool型数组
  3. 遍历去重数组的值,判断该索引值是否为false, false则将该索引设置为true

代码:

代码语言:javascript
复制
package main

import "fmt"

func main() {
	nums := []int{1, 2, 3, 1, 4, 5, 4, 5, 6, 7, 3, 6, 8}
	filter := [10]bool{}
	res := []int{}

	for _, val := range nums {
		if !filter[val] {
			filter[val] = true
			res = append(res, val)
		}
	}

	fmt.Println(res)
}

以上基于数组实现了简单的去重算法,在使用数组去重时,需要注意以下几点:

  1. 去重的数据为整数
  2. 去重数据的最大值小于整数n
  3. 数据的离散性不能过于分散,如果像1, 100 ,1000 这样的范围分散,那么使用数组进行去重空间复杂度会有些高

如果数据量很大的情况下,那么怎么实现去重?基于以上的数组去重算法思想,在下篇文章中,将介绍大数据的去重算法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云端漫记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档