• 二分法,去重


    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    	</head>
    	<body>
    		
    	</body>
    	<script type="text/javascript">
    		var arr =[1,2,3,4,5,6,7,8,9,0,8,5,5,4,3];
    		//创建一个数组
    		function findInArr(arr,n){
    			//循环数组中的每一项如果它的每一个i项与n相等就返回继续执行
    			for (var i=0;i<arr.length;i++){
    				if (arr[i] == n){
    					return true;
    				}
    			}
    			    return false;
    		}
    		function removeDup(arr,s,e){
    //			判断这个数组,的开始顺序,和这个数组是不是首项和尾项相等
    			if (s>e) {
    				return false;
    			} else if(s==e){
    				return [arr[s]];
    			}
    //			将数组进行二分,找到中间项,将数组分为两部分
    			var c= Math.floor((s+e)/2);
    			var l = removeDup(arr,s,c);
    			var r = removeDup(arr,c + 1,e);
    			for (var i=0;i< r.length; i++) {
    				if (!findInArr(l,r[i])) {
    					l.push(r[i])
    				}
    			}
    			return l;
    		}
    		console.log(removeDup(arr,0,arr.length-1))
    	</script>
    </html>
    

      算法是一种很奇妙的东西,希望能多多交流。

  • 相关阅读:
    2017ICPC南宁补题
    H. The Game of Life
    I
    Twice Equation
    (贪心+队列)String
    Marcin and Training Camp
    莫比乌斯函数模版
    HDU-1695 莫比乌斯反演
    Steps to One DP+莫比乌斯反演
    Educational Codeforces Round 62 (Rated for Div. 2)
  • 原文地址:https://www.cnblogs.com/cyj-dz/p/7113219.html
Copyright © 2020-2023  润新知