1. 程式人生 > >頭條2020屆實習生筆試題

頭條2020屆實習生筆試題

amp 技術分享 jpg 一個 方法 spa 多數元素 fine 一半

頭條2020屆實習生筆試題

一卷

編程題:

輸入某年某月某日,判斷這一天是這一年的第幾天?

    // 判斷是否為閏年
    function isRun(a) {
        return a % 4 == 0 && a % 100 != 0 || a % 400 == 0
    }

    // 判斷是這一年的第幾天
    function daysNum(year,month,day) {
        var months = [31,28,31,30,31,30,31,31,30,31,30,31];
        if(month ==1)  {
            return
day; } for(var i = 0; i < month-1; i++) { day += months[i] } if(isRun(year) && month >2) { day ++ } return day }

尋找多數元素

設計一個方法,在一個數組中尋找占大多數的元素(如果存在的話),如果這樣的元素不存在,就輸出“沒有元素占大多數”。

占大多數的元素的定義為:如果一個數組A的長度為n,某一個元素在數組中的數量大於n/2,這個元素即為占大多數的元素。(簡單推理可知,一個數組最多有一個元素為占大多數的元素)

附加要求:時間復雜度越小越好

例子:

輸入:[3,3,4,2,4,4,2,4,4]

輸出:4 // 一共5個4,超過數組長度的一半

Input: [3,3,4,2,4,4,2,4,]

Output:沒有元素占大多數

    function SelectNum(arr) {
        let len = arr.length;
        var json = {};
        for (let i = 0; i < len; i++) {
            if (json[arr[i]] == undefined) {
                json[arr[i]] 
= 1; } else { json[arr[i]] += 1 } } for (let a in json) { if (json[a] > len / 2) { return a } } return ‘沒有元素占大多數‘ }

第三題

技術分享圖片

技術分享圖片

技術分享圖片

請有緣人指點。。

頭條2020屆實習生筆試題