[問題] 尋找陣列中缺少的數字 給P幣5000

作者: jackjenny (痛苦)   2016-04-17 01:41:13
小弟被人問問題 有點搞混了
看似簡單 我只會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元
感謝
作者: GoalBased (Artificail Intelligence)   2016-04-17 01:53:00
for(var i=0; i <= input.length; i++){if(input[i] != i+1) return i+1;}沒經過測試0.0
作者: 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 查詢
作者: jackjenny (痛苦)   2016-04-17 04:42:00
請問a大 ==-1 是什意思? ^^我已經解出來了 利用A大提到indexof()方法不過最後一行 console.log(i)會多一行錯誤@@?改成return(i)就可以了 不知道為什@@?
作者: johnny9144 (Johnny)   2016-04-17 10:36:00
因為用console.log(I) 你的function 沒有回傳值這個時候你變成要console.log()沒有填值所以錯誤也就是說 用a大的方法你直接 呼叫function 就好,不要把function 包在console.log()裡面
作者: amaameryou   2016-04-17 12:27:00
reutrn-1 是沒找到, return >-1 是回傳在陣列中的位置錯誤原因johnny大已經說明, 改為return i是對的https://goo.gl/Kg9Qt array indexOf 說明
作者: zxm20243 ( )   2016-04-17 16:41:00
算和直接扣掉應該是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好了
作者: jackjenny (痛苦)   2016-04-19 01:43:00
謝 會給A大P幣 研究下怎給P幣指令@@
作者: abandonONE (ONE)   2016-04-20 15:54:00
if那行,「== 2」換成「!= 2」就可以了if那行,「== 2」換成「!= 1」就可以了抱歉我第一行打錯了 囧rz

Links booklink

Contact Us: admin [ a t ] ucptt.com