var str='1 5 7 8 9 10 11'; var strArr=str.split(' '); for (var i = 0; i < strArr.length; i++) { strArr[i] = parseInt(strArr[i]); } //對數組進行升序排序 strArr.sort(function(num1, num2) { return num1 - num2; }); var result=[]; var temp=1; //temp用來控制數值和其對應下標的差值 for (i = 0; i < strArr.length; i++) { var x1 = strArr[i] - i; //x1表示當前數組中數值和下標的差值 var x2 = i+temp; //由於正常狀況下,數值和下標的值差1,因此要對x1加1,纔是最終的結果 while ( x1 != temp) { result.push(x2); x2++; //在差值增長的狀況下,缺失的值也應該加1 temp++; //若是差值不是1,那麼應該給temp加1,看差值是不是2,以此類推 } } console.log(result);
題目:數組
在小紅家裏面,有n組開關,觸摸每一個開關,可使得一組燈泡點亮。 如今問你,使用這n組開關,最多可以使得多少個燈泡點亮呢? 數據結構
輸入 :第一行一個n,表示有n組開關。 接下來n行,每行第一個整數爲k,表示這個開關控制k個燈泡,接下來k個整數,表示控制的燈泡序號。 知足: 1<=n<=1000 ,1<=k<=1000 ,序號是在int範圍內正整數。 函數
輸出 :輸出最多多少個燈泡點亮。spa
let n=readInt(); let res=[]; while(n--){ let k=readInt(); while(k--){ let num=readInt(); res.push(num); } } //ES6提供了新的數據結構Set。它相似於數組,可是成員的值都是惟一的,沒有重複的值。 //Set函數能夠接受一個數組(或相似數組的對象)做爲參數,用來初始化。 res=[...new Set(res)]; print(res.length);