微软8.13笔试(python版)

code1 [5,19,8,1]输出3 19/2/2+8/2共计3次
遍历列表每次对最大值除2,三个测试案例都能过复杂度应该也还可以
def solution(A):
    A.sort()
    target = sum(A)/2
    A = A[::-1]
    if len(A)<=2:
        return len(A)
    B = A[:]
    res,count = 0,0
    while res<target:
        temp = []
        m = max(B)/2
        res += m
        indx = B.index(m*2)
        B[indx] = m
        count += 1
    return count
code2 给X,Y两个数组,分别代表分子分母,求X[i]/Y[i]+X[j]/Y[j] =1的对数
没想到特别好的优化方法,其实也就是暴力找解,但是在循环过程中增加了判断条件减少循环次数,三个测试案例同样也过了,但是可能时间复杂度会超
def solution(X,Y):
    count = 0
    for i in range(len(X)-1):
        target = X[i]/Y[i]
        if target >=1:
            continue
        for j in range(i+1,len(Y)):
            m = min(X[j:len(X)])/min(Y[j:len(Y)])
            if m+target >1:
                break
            elif target+(X[i]/Y[j])==1:
                count += 1
    return count
code3 我理解就是步长为Y,在列表中找X个数,求和最小,3个测试案例过了
A=[4,2,3,7] X=2,Y=2,return 7=4+3 思路其实也挺简单,依次按照步长Y,个数X去遍历列表,添加到temp中,如果temp元素个数=X,那在target列表中求个和,最后输出最小cost的那个
def solution(A,X,Y):
    target = []
    for i in range(len(A)-Y):
        temp = []
        step = i
        for j in range(X):
            temp.append(A[step])
            if step+Y>=len(A):
                break
            else:
                step += Y
        if len(temp) == X:
            target.append(sum(temp))
    return min(target)
最后,欢迎大家讨论啊,我挺菜的 ,考试130分钟只能想到这些方法去解答




#微软笔试##秋招##Python#
全部评论
跟楼主写的差不多,也是对第二题其他用例没有太大信心。话说这个考完了不能查成绩可真是太难受了😑
1 回复 分享
发布于 2022-08-15 10:27
第一题用最大堆会好一点,第二题用dict+gcd会好一点
点赞 回复 分享
发布于 2022-08-15 13:41
我第三题的思路和你一样 但是我上午刷的时候大家都说用动态规划 我在想如果步长固定的话 动态规划真的有必要吗?
点赞 回复 分享
发布于 2022-08-13 16:09

相关推荐

缓解焦虑的最好方法是回家。鼠鼠昨天上午考完了本科阶段的最后一场考试,大概率考得稀烂,但是没多想,考完立马收拾行李,坐上了提前约好的顺风车飞奔回家。虽然家和学校很近,只有一百多公里的路程,但距离上次回家也已经有三四个月了。每次想回家,期间总有考试、毕业设计、面试、实习等等各种各样的原因,没办法回去,待在学校和公司的每一天也都充斥着无形的压力和焦虑。现在终于完成了答辩,考完了试,公司那边也请了假,是时候回去一趟了。没有提前通知爸妈,想给他们一个惊喜。下午提前到了家,他俩还在上班,只好让外公外婆来给我开门。因为我的回家,晚上外婆在厨房格外忙碌,做了满满一大桌子菜,填饱了我天天吃外卖的肚子。晚上也没空...
梦想是成为七海千秋:取决于家庭吧?其实回家更焦虑了,每天起床父母都问实习找好了没简历投递了没今天有没有面试,但是又没有什么结果,玩两下手机父母就会说你看你啥也没找到为什么天天就知道刷手机,怎么不去学习…我现在就希望我能永远在外面实习,报喜不报忧,等拿到一个好offer再回家
点赞 评论 收藏
分享
06-05 19:46
已编辑
武汉大学 后端
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

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