小弟被人问问题 有点搞混了
看似简单 我只会javascript一点
会运用到propmt console.log for if
所以在这求程式解 给P币5000元
Q1:
寻找阵列中缺少的数字: 输入一个阵列,
该阵列的元素是 1 到 N+1,其中 N 是阵列的数
量。请找出其中缺少的数字。例如输入 [1,2,4,5,6] 应输出 3
答案应该会是
console.log( solution([1,2,4]) ); // 3
console.log( solution([1,2,3,5,6]) ); // 4
console.log( solution([1,2,3,4,5]) ); // 6
我的解法是
a.先不管propmt 输入或输出 直接改下方的console.log()当输入
b.
function solution(InputArray)
{
for(var i=0; i <= InputArray.length-1; i++)
{
if (InputArray[i+1]-InputArray[i] == 2)
{
return i+2;
}
}
}
console.log( solution([1,2,4]) ) 答案显示3
console.log( solution([1,2,3,5,6]) )答案显示4
console.log( solution([1,2,3,4,5]) ) 答案解示无解
c.
这样只能求解数列中有缺漏数字,
console.log( solution([1,2,4]) ); // 3
console.log( solution([1,2,3,5,6]) ); // 4
换句话说不能求解 连续数列N元素,再补递N+1,会没办法判断
console.log( solution([1,2,3,4,5]) ); // 6
d.请问该怎解法 以及 增加输入阵列解法 输出答案解法
请大大协助
P币5000元
感谢
作者: amaameryou 2016-04-17 02:40:00
for(var i=1; i <= InputArray.length+1; i++){if (InputArray.indexOf(i)==-1){console.log(i);}} //利用阵列 indexOf 查询
算和直接扣掉应该是O(n)solution = function(arr) {var len = arr.length;var sum = arr.reduce((to, val) => to + val, 0);var ans = (len + 1) * (len + 2) / 2 - sum;return (ans === len + 1) ? null : ans;};不过如果数字是递增还是一个一个找,找到就break好了