鏈家2018實習生前端筆試題

1、找出1到n中缺乏的數

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);

2、開關控制燈泡問題

題目:數組

在小紅家裏面,有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);
相關文章
相關標籤/搜索