当前位置:编程学习 > JS >>

腾讯的JS前端面试题高人解答代码(1)

这是一道腾讯公司面试员工的一个JS算法试题,有一组数字,从1到n,从中减少了3个数,顺序也被打乱,放在一个n-3的数组里,请找出丢失的数字,最好能有程序,最好算法比较快。假设n=10000。本代码是其中之一的算法,或许你看了之后会有所帮助,主要是随机数和循环方法的技巧。
答案:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>腾讯的JS前端面试题</title>
<script>
var ary = [1, 5, 7, 6, 4, 8, 10];
var n = ary.length + 3;
var newAry = [];
document.write("假设n=" + n + "<br/>");
ary.sort(function(a, b){
	return a - b;
});
document.write("初始数组:" + ary + "<br/>");
for(var i = 1, j=0; i <= n; i ++,j++){
	var diff = ary[j] - i;
	if(!ary[j]){
	  	newAry.push(i);
	} else if(diff > 0){
		for(var k = 0; k < diff; k ++){
		  newAry.push(i++);	
		}
	}
}
//alert(newAry);
document.writeln("缺少的数:" + newAry);
</script>
</head>
<body>
</body>
</html>

上一个:超漂亮仿Win进度条样式的网页Loading代码
下一个:一个常见的Loading特效(Js代码)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,