2019/09/22 03-重复数据统计讲解

在这里插入图片描述
**统计就需要用到数据结构,给个容器放一堆数据,在一堆数据找出什么什么。
比如ip地址相同的有几个,出现多少次,是否在攻击你
不同的习题是让你对不同的数据结构有深刻理解,不然数据结构不会用
现在用列表,有多少元素迭代多少次即可,
这样也有缺点,有多少个元素,退队多少个,来标记它的状态,既然是一种标记,在现在的过程中,无非就是标记0和1,仿照计算机按位来标记,这种思想叫位图,
但如果要记录元素出现了多少次,用位就表示不了了,有了次数标记下来就大了去了,比如300次,一个字节表示不了,一个字节最多也就表示256种状态,这个时候就没办法了
**
在这里插入图片描述
先自定义好数字,成都,然后标记位states在这里插入图片描述
下面就是两层循环了
flag标记为,上来就表示一上来并没有重复(假定没有重复),每一趟迭代i
内存循环判断,如果重复flag=true,就打个标记states【j】1
如果相等,标记位变了

在这里插入图片描述
里面的循环做完了,flag = true ,说明遇到过相同的
states【i】标记成1
samenums相同数加进来
如果不相同,不一样的数字加进去
diffnums。append
这是最核心的代码,但是都还没怎么优化
在这里插入图片描述
列表的优势在于索引,
在这里插入图片描述
在这里插入图片描述
出现重复的是11,7,单个的5,6
在这里插入图片描述
现在稍微做下改变就可以取到它的个数,
每一次进来的时候count=0,内层找到就+1

在这里插入图片描述
i+1向后找,找到11,标记=0+1=1,在找到11,count+1=2
在这里插入图片描述
反过来,就有3了
在这里插入图片描述
有了count,flag就没什么用了,count!=0代表重复过
在这里插入图片描述

第二次循环开始,7count标记1
在这里插入图片描述
再一次循环,count=2
在这里插入图片描述在这里插入图片描述在这里插入图片描述
然后写个随机数,range是前包后不包,ranange前包后包在这里插入图片描述
可以改造成列表解析式,这两个东西是等价的
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值