2019字节跳动春招题目

2019字节跳动算法岗春招,共四道编程题,没有选择题。笔试的时候只做出来了前两道,这里参考了大佬 Azhao1993 的解题思路, 把后两道的解法整理一下。

Q3 编程比赛

现在有n人参加编程比赛,比赛结束后每个人都得到一个分数。现在所有人铺成一圈(第1个和第n个相邻)领取奖品,要求:
1.如果某个人的分数比左右的人高,那么奖品数量也要比左右的人多;
2.每个人至少得到一个奖品。
输入描述:
第一行是整数n,表示测试样例数
每个测试样例的第一行是一个正整数,表示参加比赛的人数(0<n<100,000)
第二行是n个正整数,a[i] (0 <a[i]<10,000), 表示的从第1个人到第n个的分数
输出描述:对每个测试样例,输出应该准备的最少奖品

示例1
输入

2
2
1 2
4
1 2 3 3

输出

3
8

思路: 将选手从左到右排列在一个列表中,首尾相连,然后从左到右和从右到左分别使用贪心算法。
解答 (Python3):

# 读入输出
import sys
try: 
    while True:
        line = sys.stdin.readline().strip()
        if line == '':
            break 
        lines.append(line)
except: 
    pass

def main():
    N = int(lines[0]) # 测试样例数
    for i in range(N):
        m = int(lines[i*N+1]) #选手数目
        s = [int(item) for item in lines[i*N+2].split(' ')]# 选手的分数
        assert m == len(s), print("Error!")
        r = [1 for _ in range(m)] # 选手的奖品数,初始值为每个选手1个奖品
        # 首尾相连
        m += 1
        s.append(s[0])
        r.append(1)
        
        while True:
            flag = False #判断当前循环内有没有发生奖品数的变化,若没有则说明当前奖品数已满足要求,可以退出当前循环。
            #从左到右,若右边选手的分数高于左边,但奖品数低于或等于左边,则右边选手的奖品数=左边选手的奖品数+1
            for j in range(m-1):
                if s[j] < s[j+1] and r[j] >= r[j+1]:
                    r[j+1] = r[j] +1
                    flag = True
            r[0] = r[-1]
            #从右到左,若左边选手的分数高于右边,但奖品数低于或等于右边,则左边选手的奖品数=右边选手的奖品数+1
            for j in range(m-1, 1, -1):
                if s[j] < s[j-1] and r[j] >= r[j-1]:
                    r[j-1] = r[j] +1
                    flag = True
            r[-1] = r[0]
            if not flag:
                break
        result = sum(r[0:len(s)-1])
        #输出结果
        print(result)
if __name__ == '__main__':
    main()

Q4 割绳子

有N根绳子,第i根子长度为Li,现在需要M根等长的绳子,你可以对n根绳子进行任意裁剪(不能拼接),请你帮忙计算出这m根绳子最长的长度是多少。
输入描述:

第一行包含2个正整数N,M, 表示N根原始的绳子和最终需要M根绳子数
第二行包含N个整数,第i个整数Li表示第i根绳子的长度
其中
1<=N, M<=10000
0<Li<1000000000

输出描述:

对每一个测试用例,输出一个数字,表示裁剪最后的长度,保留两位小数

思路:二分法
解答 (Python3):

# 读入输出
import sys
try: 
    while True:
        line = sys.stdin.readline().strip()
        if line == '':
            break 
        lines.append(line)
except: 
    pass

N = lines[0].split(' ')[0]
M = lines[0].split(' ')[1]
L = [int(item) for item in lines[1].split(' ')]

def main():
    LENGTH = sum(L)#总绳长
    l = 0
    r = LENGTH
    result = 0
    while (r-l) > 1e-4:#二分法,当l-r满足精度时跳出循环
        mid = (l+r)/2.0
        if mid == 0:
            break
        if sum([int(item/mid) for item in L]) >= M:#如果可以截成M段长度为mid的绳子
            l = mid
            result = mid
        else:
            r = mid
    print(round(mid, 2))
        
if __name__ == '__main__':
    main()  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353