数组连续数字去重问题

来源:互联网 发布:男朋友接吻会硬 知乎 编辑:程序博客网 时间:2024/06/03 06:31

场景如下:一个数组中有连续重复的数字,去除重复的数字,然后保留第一个数字,后面如果有相同的数字的话保留。

如:

输入:1,2,3,6,6,6,7,8,6,5,4,3,3,2

输出:1,2,3,6,7,8,6,5,4,3,2

这也是我去一家公司面试的题,当时让用c语言写,当时没有写出来,后来在另一家公司实习,遇到真实的场景,从数据库中取出数据,然后进行处理,数据场景和上面描述的差不多。

通过这个例子,我也明白了,大公司为什么很重视数据结构和算法,因为大公司处理的数据量是比较大的,我们写的程序不仅仅是要求正确性,还有它的效率。当然最重要的还是正确性,当遇见特别大的数据的时候,如何采取合适的方法正确并快速的解决,这些应该是自己接下来要学习的吧,同时这也是自己两个月的实习收获吧------算法和数据结构的重要性。

<?php $arr = array(1,2,3,4,6,6,6,6,7,7,7,8,9,5,6,5,5,6,6,5,7,8,9,8,9,10,11,1,1,2,3,1,2,3);    $num = count($arr);    $tmp = array();    for($i=0;$i<$num;$i++) {        for($j=$i+1;$j<=$num;$j++){     //注意这里是<=号,如果面试的时候写成<号的话就不好了,感觉这里是个坑            if($arr[$i] != $arr[$j]){                $tmp[] = $arr[$i];                $i = $j-1;  //为什么是 -1,因为break以后跳出内层的for循环,$j++,所以要把++的1减掉                break;               }        }    }    print_r($tmp);


原创粉丝点击