美团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
😥我第二题也大概是这么做的,只a了45%,还好他给面试了。
点赞 回复 分享
发布于 2021-03-16 21:48
美团笔试可以看到通过率的吗,我都不知道…
点赞 回复 分享
发布于 2021-03-16 23:01

相关推荐

11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
真java练习生:他的回答真的是太糟糕了,就像隔壁苏珊婶婶做的苹果派一样
点赞 评论 收藏
分享
3 23 评论
分享
牛客网
牛客企业服务