腾讯面试题,10分钟排填数值(转)
2019转眼就结束了,很多小伙伴正在为明年的金三银四找工作而操劳,也有的小伙伴在准备着2020年的实习。而进入国企,事业单位、BAT、500强这都是很大部分人选择。而在求职或求实习的过程中,很多职场新人都希望看到职场老鸟的一些实际求职经历以及经验心得。我们一起来看一下下面这位求职者的分享。
据该职场人描述,自己接到腾讯的面试通知,在笔试的过程中,一道算法题做不出来。所以前来求助。
腾讯面试题:
给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数,要求下排每个数都是先前上排那十个数在下排出现的次数。上排的十个数如下:【0,1,2,3,4,5,6,7,8,9】。
假如你是面试者,需要在10分钟时间内做出这道题,你会怎么做?
这样的求助也是瞬间引起网友的注意,笔者精选几道答案,与大家分享一下。
第一位是一名来自58同城的职场人。只见他回答到。非程序员,5分钟左右强行配出来的。6-2-1-0-0-0-1-0-0-0。下排数字是上排对应数字在下排出现的频次,所以下排加起来只能是10。如果0出现的频次过低,那其他数字的频次会过高,加起来会爆掉。于是从0下面是9开始配,配到6才有第一个能配齐的答案。不知道有没有多个解,不想配了,笨办法。
第二位是一位算法工程师。写了个算法def funny(a):r = [a[0]] * len(a) flag = True while flag: flag = False for i, num in enumerate(a): if r.count(num) != r[i]: flag = True r[i] = r.count(num) return r
第三位来自小米的职场人回答到。用个hashmap遍历一遍,统计count?6 2 1 0 0 0 1 0 0 0 因为这道题我摸鱼半小时了,雷军对不起。
其实,腾讯该面试题基本思路就是,以输入列表第一个值生成原始输出列表,然后反复进行上排的count,并修正下排的值,直到下排数据不再变化。当然,以上三位职场人的答案都是正确的。如果你是面试官,通过以上三位职场人的解题思路,我们就完全可以看出,我们需要哪位员工。
当然,笔试只是一个开始,后面还会迎接到群面,初试,总监面,HR面。笔试PASS只是通关鹅厂路上的第一道小关卡,后面还有这么多大BOSS在排队等着你。不愧是无数人挤破头也想去的鹅厂,笔者听了都令人头秃,顺祝各位好运。