头条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 ‘没有元素占大多数‘
    }

第三题

请有缘人指点。。

原文地址:https://www.cnblogs.com/lhh520/p/10330154.html

时间: 2024-10-03 00:34:47

头条2020届实习生笔试题的相关文章

算法面试题-今日头条2017客户端工程师实习生笔试题4:或与加

今日头条2017客户端工程师实习生笔试题 题目: 这个题做到最后,时间不是很够,题目内容比较简单,求出第k个正整数符合x+y=x|y,然而这个k的取值范围非常大(k<=2000000000),所以可以不用考虑穷举法,当然,时间不够的话写个穷举试试运气也可以. 穷举法: 1 import java.util.Scanner; 2 3 /** 4 * Created by Administrator on 2016/9/6. 5 */ 6 7 public class Main { 8 public

今日头条2017后端工程师实习生笔试题 - 题解

今日头条2017后端工程师实习生笔试题 最大映射 题意 给n(不超过50)个字符串,每个字符串(长度不超过12)由A-J的大写字符组成.要求将每个字符映射为0-9,使得每个字符串可以看作一个整数(不能有前导零),求这些字符串映射后得到数字的最大和值.(数据保证至少有一个字符不是任何字符串的首字母) 思路 根据字符所在的位置,累积统计每个字符的权值,从右到左权值分别为1, 10, 100, 1000..... 然后排序,从权值最小的到权值最大的依次映射为0-9,求和即为答案. 注意 由于每个字符串

诺基亚(Microsoft Devices Group)2014暑期实习生笔试题知识点

总结一下Microsoft Devices Group的软件类笔试题,所有笔试题分两份试卷,逻辑题一份和软件测试题一份,只总结技术题喽~题目全英文,只包含选择题和填空题,选择题居多,分单选和多选,多选题题目会标注出来.总体来说考察的很基础也很细节,难度适中.下面把记得的一些知识点总结一下下: *命名管道的定义. *主机A发送IP数据报给主机B,途中经过了5个路由器.试问在IP数据报的发送过程总共使用几次ARP(6次) *Linux系统下,给一个文件重命名(mv A,B) *考察无符号整型数和有符

趋势科技2014年暑期实习生笔试题

题目: 有81匹赛马,9个赛道可以利用,每匹赛马的速度是恒定的,不计时但记录每场的名次,请问,赛几次可以得到前5名? 解答: 首先把81匹马分为9组,赛九场,然后把每场的第一名拿出来(刚好9匹),赛一场,得到前五名所在的组(后四名的组果断排除).此时可以确定第一名.然后在第一名的组中抽取2-5名(共四匹马),在第二名的组中抽取2-4名(共三匹马),在第三名的组中抽取2-3(共两匹马),在第四名的组中抽取第2名(共一匹马),此时剩下的马匹有(4+3+2+1+4=14匹),取14中的9匹赛一场,得到

今日头条2017后端工程师实习生笔试题

第二题: [编程题] 木棒拼图 有一个由很多木棒构成的集合,每个木棒有对应的长度,请问能否用集合中的这些木棒以某个顺序首尾相连构成一个面积大于 0 的简单多边形且所有木棒都要用上,简单多边形即不会自交的多边形. 初始集合是空的,有两种操作,要么给集合添加一个长度为 L 的木棒,要么删去集合中已经有的某个木棒.每次操作结束后你都需要告知是否能用集合中的这些木棒构成一个简单多边形. 输入描述: 每组测试用例仅包含一组数据,每组数据第一行为一个正整数 n 表示操作的数量(1 ≤ n ≤ 50000)

腾讯2014实习生笔试题--德梅齐里亚克砝码问题

问题 珠宝商甲需要去鉴定一批41克以下的宝石(可能是41克以下不包括41克的任意重量),他只能携带一个天平和四个砝码去称重,请问他会携带那些重量的砝码?-----2014腾讯暑期实习生附加题第一题 解答: 首先给出问题的答案,聪明的人看到答案的形式就能猜到其中的规律:1,1*2+1=3,(1+3)*2+1=9,(1+3+9)*2+1=27. 德梅齐里亚克砝码问题问题描述: 一位商人有一个40磅的砝码,由于跌落在地而碎成4块.后来,称得每块碎片的重量都是整磅数,而且可以用这4块来称从1至40磅之间

腾讯2016年实习生笔试题-蛇形数组-循环枚举遍历

在n*n方阵里填入1,2···,n*n,要求天成蛇形,如n=4时. 10  11  12      1 9   16   13     2 8   15   14     3 7     6    5     4

2014年腾讯实习生笔试题解析

本答案是我自己搜索资料解答出来,假设不正确敬请指出 1. 使用深度优先算法遍历下图.遍历的顺序为(C) A ABCDEFG B ABDCFEG C ABDECFG D ABCDFEG 解析: 深度优先遍历相似于树的前序遍历,其基本思想为: (1).訪问顶点v; (2).从v的未被訪问的邻接点中选取一个顶点w,从w出发进行深度优先遍历. (3).反复以上两步: 选C 2. 输入序列ABCABC经过栈操作变成ABCCBA,以下哪些是可能的栈操作( AD) A. push pop push pop p

笔试题81. 腾讯2017暑期实习生笔试题

今天有点累,不如来个刷个题吧,记得参加腾讯在线笔试的时候遇到过一道题,确实比较懵,所以今天就好好的想了想,这个题来自牛客网... 看到这个图的时候相信大家明白了吧,就是这个题,我一直没有思路,今天突然想起来了,所以就准备解决它.其实这个题主要是运用一个算法思路来解决,最长公共子序列. 仔细想一想,将字符串逆序后与原来的字符串求最长公共子序列不就是这个构造回文吗?这应该很好理解吧,下面简单科普一下最长公共子序列:这中序列不是连续的,意思是可以有间隔,去掉那些干扰项以后,两个序列完全相同,而且要求这