列表去重,就是把一组有重复数据的数据序列,删除重复的数据。如(1,9,7,3,9,3),去重后得到(1,9,7,3),这并不是一个特殊的具体算法,却在很多比赛活动中遇到,我们一起来弄清楚下吧!
scratch中删除列表重复效果
使用列表去重标签法思路分析:
第1次:将位置1的数据“1”, 逐一和后面的5个数据比较,是否相等,若相等则将该数据做一个标签 ,这里采用将该数据修改为“a”的办法,得到如下(1,9,7,3,9,3)
第2次:若位置2的数据不等于“a”,则将位置2的数据,逐一和后面的4个数据比较,是否相等,若相等则将该数据做一个标签,这里采用将该数据修改为“a” 的办法。(1,9,7,3,a,3)
第3次:若位置3的数据不等于“a”,则将位置3的数据,逐一和后面的3个数据比较,是否相等,若相等则将该数据做一个标签,这里采用将该数据修改为“a” 的办法。(1,9,7,3,a,3)
第4次:若位置4的数据不等于“a”,则将位置4的数据,逐一和后面的2个数据比较,是否相等,若相等则将该数据做一个标签,这里采用将该数据修改为“a” 的办法。(1,9,7,3,a,a)
第5次:位置5的数据等于“a”, 本次无须比较,直接跳过,得到如下(1,9,7,3,a,a)。
第6次:位置6的数据等于“a”, 本次无须比较,直接跳过,得到如下表格。(1,9,7,3,a,a)。
scratch中删除列表重复,使用列表去重标签法:
步骤一、创建一个list数据列表,将6个(1,9,7,3,9,3)数据,加入到列表元素中。
步骤二、新建变量i、j,表示遍历的变量,代表每次遍历的次数。
步骤三、将遍历,将满足两个值相等的数据,重复数据修改为“a”
遍历将相同元素的值用a替代
步骤四、再来去掉数据a的步骤;但是会遇到一个问题,两个连续元素a的话,只能拿删除一个a,还有一个a删除不了。例如,第五项删除后,第六项是遍历不出的,所以删不掉,因为第五项删除后,第六项就成为了第五项;所以这里需要用个一循环来排查;代码如下: