一道JS的简单算法题

今天百度了一下腾讯的前端面试题,找了好久只有找到这道题,顺便mark一下

题目是这样的:有一组数字,从1到n,从中减少了3个数,顺序也被打乱,放在一个n-3的数组里,请找出丢失的数字,最好能有程序,最好算法比较快。


网上的答案有一些出入,整理如下


<!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(diff > 0){
for(var k = 0; k < diff; k ++){
newAry.push(i++);
}
}
}
//alert(newAry);
document.writeln("缺少的数:" + newAry);
</script>
</head>
<body>
</body>
</html>

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2014-02-11 14:28  KiraChen  阅读(182)  评论(0编辑  收藏  举报