美团3.13算法笔试 Python

作为一个新手小白,参加了美团笔试,第一次笔试有很多地方不懂,做出三道题,1,3两题只过了18%,于是很有疑问,特地放出代码,想寻求大佬指点。

第一题 矩阵转置

输入:第一行输入 n m 代表行数和列数
后面紧跟n行数字 每行有m个数字,代表这一行的数

输出:这个矩阵的转置

例如
输入:
3 3
1 2 3
4 5 6
7 8 9

输出:
1 4 7
2 5 8
3 6 9

因为平时用numpy比较多,这里我就直接把numpy导入了,不知道是不是这里的问题,这里放上代码
import numpy as np

# 矩阵转置

if __name__ == '__main__':
    n, m = map(int, input().split(' '))
    matrix_a = []
    for i in range(n):
        row_list = input().split(' ')
        for j in range(len(row_list)):
            row_list[j] = int(row_list[j])
        matrix_a.append(row_list)

    matrix_a = np.array(matrix_a)
    matrix_a = matrix_a.T

    for p in range(m):
        for q in range(n):
            print(matrix_a[p,q],end=' ')
        print()

第三题 滑动窗口取众数

给一个数组,规定一个滑动窗口,每次取滑动窗口里的众数输出,如果有多个众数选择最小的数字输出

def find_num(list):
    memory = []
    value = []
    for i in range(len(list)):
        if list[i] not in memory:
            memory.append(list[i])
            value.append(1)
        elif list[i] in memory:
            value_index = memory.index(list[i])
            value[value_index] += 1
    if len(set(value)) == len(value): # 说明众数没有重复元素
        max_index = value.index(max(value))
        max_num = memory[max_index]
    else: # 说明众数中有重复元素
        max_time = max(value)
        index_list = []
        for g in range(len(value)):
            if value[g] == max_time:
                index_list.append(g)
        candidate_list = [memory[r] for r in index_list]
        max_num = min(candidate_list)


    return max_num


if __name__ == '__main__':
    n, k = map(int, input().split(' '))
    all_num_list = input().split(' ')
    for i in range(len(all_num_list)):
        all_num_list[i] = int(all_num_list[i])

    # 开始滑窗
    result = []
    for i in range(0, n-k+1):
        final_num = find_num(all_num_list[i:i+k])
        result.append(final_num)

    for n in result:
        print(n)



#笔经##美团##算法工程师##笔试题目#
全部评论
第三题咧老哥
1 回复 分享
发布于 2021-03-15 10:10
美团笔试可以看到通过率的吗,我都不知道…
点赞 回复 分享
发布于 2021-03-16 23:01
😥我第二题也大概是这么做的,只a了45%,还好他给面试了。
点赞 回复 分享
发布于 2021-03-16 21:48

相关推荐

|| 先说下主播个人情况:211本,暑期实习之前有过一段中大厂的后端实习,暑期拿过腾讯的实习offer,综合考虑业务和语言最终去了美团。实习期间体感还是不错的,5月初去的,去了就一直急着要需求做,担心因为没有产出导致转正失败,在第二个星期就和mt透露我希望能够留用。虽然第一个由于美团新人landing的友好性基本没做什么需求,但是后面也写出了小2w行的代码量(不包含单测)。中期经常主动加班赶需求,经常持续一两个星期加班到10点甚至更后面。mt对我确实不错,也是言传身教,实习期间给我讲了很多关于单测,ddd,set化等的理解,也是受益匪浅,此外在做需求的时候,也能看出把比较有含金量的部分交给我做...
菜菜菜小白菜菜菜:我在字节实习了四个月,有转正的压力所以周末大部分也在公司自学,也是因为一些原因转正拖的很久,这个点还没答辩,过段时间才回去答辩。整个不确定性的焦虑贯穿了我的秋招三个月,我也曾经犹豫过是不是应该放弃转正走秋招更快,最后因为沉没成本一直舍不得放弃,前前后后七个月真的挺累的,尤其是没有来字节实习的同学已经校招拿到意向时更加焦虑。这段时间也跟mentor聊了很多次,他告诉我未来工作上或者生活上,比这些更头疼的事情会更多,关键还是要调整好自己的心态。转正没有通过从过程上来看其实跟你自身没太大的关系,拖了三个月不出结果显然是ld的问题,并且今年美团最近的开奖大家似乎都不是很乐观,所以不去也罢。我在字节实习的时候,6月份有一个赶上春招末期的25届同事刚面进来,也拿到了小sp的薪水。不要对这件事有太大的压力,时代的问题罢了
点赞 评论 收藏
分享
投递网易等公司10个岗位
点赞 评论 收藏
分享
10-28 17:30
已编辑
华东交通大学 Java
iori2333:这太正常了 我字节面了四五轮 没有一次是在官网投递 都是hr主动捞
秋招笔试记录
点赞 评论 收藏
分享
评论
3
23
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务