zoukankan      html  css  js  c++  java
  • 数组去重的方法

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
        </body>
    </html>
    <script>
        /*
        2、  编写函数has(arr , num) 判断数组中是否存在num这个元素,返回布尔类型
        3、  编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组 (此题为13K)
        [1,2,1,34,2,5,6,2]
        去重后:
        [1,2,34,5,6]
         */
        function has(arr,num){
            for( var i = 0 ; i < arr.length ; i++ ){
                if( arr[i] == num ){
                    return true; // 有
                }
            }
            return false;//没有
        }
        /*var res = has( [23,45,56] , 56 );
        alert( res );*/
        
        /*思路1 : 定义一个空数组 , 遍历原数组,判断原数组中的每一个数在空数组中是否存在,如果不存在 ,就将这个数 存入到 空数组中 */
        function norepeat( arr ){ //arr就是要去重的数组 (原数组)
            var newarr = [];//空数组 用来存储去重后的数据
            for( var i = 0 ; i <arr.length ; i++ ){
                //var res = has( newarr,arr[i] );
                if( !has( newarr,arr[i] ) ){ //不存在
                    newarr.push( arr[i] );
                }
            }
            return newarr;
        }
        //var res = norepeat( [34,34,23,34,56,56,23] );
        //alert( res );
        
        /*
         思路2 :
         先将数组按照一定的顺序排好(升序或降序)
         用数组相邻的两个数做比较,如果相邻的两个数不相等,就将前一个数存入到新数组中
         */
        function norepeat2( arr ){
            //先将数组进行排序
            arr.sort( function(a,b){
                return a-b>0;
            } )
            var newarr = [];//存储去重后的数据
            //遍历原数组 比较相邻的两个数
            for( var i = 0 ; i < arr.length ; i++ ){
                if( arr[i] != arr[i+1] ){
                    newarr.push( arr[i] );
                }
            }
            return newarr;
        }
        
        var res = norepeat2( [34,2,34,2,45,67,45,67,56,2] );
        alert( res );
    </script>
  • 相关阅读:
    CodeForces 203C Photographer
    CodeForces 190A Vasya and the Bus
    CodeForces 187A Permutations
    Zoj3762 等待解决
    LA4080最短路树的应用
    uva10917 dij单源最短路预处理+构造新图(DAG)+求图上路径数
    uva11374 dij单源最短路+枚举
    LA3713 2-sat(用到两种矛盾关系)
    【算法总结】2-sat中对象的5种矛盾关系及其连边方式
    LA3211二分答案+2-sat+总结的此类问题统一建模方法
  • 原文地址:https://www.cnblogs.com/tis100204/p/10319193.html
Copyright © 2011-2022 走看看