阿里7.24笔试

第一道吃烧饼一分钟解决,第二道59分钟不知道怎么搞……
第一题Python代码
def f(nums):
    for i in range(1, len(nums)):
        nums[i] = min(nums[i - 1], nums[i])
    return sum(nums)

第二题Python代码
def f(nums1, nums2):
    if not nums1&nbs***bsp;not nums1[0]:
        return 0
    N, L = len(nums1), len(nums1[0])
    res = 0
    for col in range(L):
        col1 = (x[col] for x in nums1)
        col2 = (x[col] for x in nums2)
        sum1, sum2 = sum(col1), sum(col2)
        if sum1 != sum2 and sum1 + sum2 != N:
            return -1
        elif sum1 == sum2:
            continue
        else:
            res += 1
            for row in range(N):
                nums1[row][col] = 1 - nums1[row][col]
    nums1.sort()
    nums2.sort()
    if nums1 == nums2:
        return res
    else:
        return -1



#笔试题目##阿里巴巴#
全部评论
我的思路是这样的, 先把列中 ‘1’的个数的不匹配的每列翻转过来,翻转解决不了的直接No Result,总翻转次数记为 ans,用一个hashmap统计翻转之后的原始灯泡排列与预期的灯泡排列中每行的字符串出现频率,相等的话可以转化输出 ans,你看可以吗
2 回复 分享
发布于 2020-07-24 21:12
求个问题描述
点赞 回复 分享
发布于 2020-07-24 22:53
第二题过了40%,剩下的超时,看了半个小时也不知道怎么优化。。。
点赞 回复 分享
发布于 2020-07-24 22:09
牛啤
点赞 回复 分享
发布于 2020-07-24 21:26
请问第一题是怎么理解呢
点赞 回复 分享
发布于 2020-07-24 20:52
看到大家都只a了一道,我就放心了😂
点赞 回复 分享
发布于 2020-07-24 20:47
我第二题先判断相等,再判断不等但求和为N,过了20🤣
点赞 回复 分享
发布于 2020-07-24 20:25
我大概知道第二题代码哪里有问题了
点赞 回复 分享
发布于 2020-07-24 20:24

相关推荐

鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
05-07 19:10
已编辑
中国科学技术大学 C++
silly01:现在先去 momenta,8-9月去鹅找日常实习,八股文算法背好了你这随便进。不过建议补充一下后端知识,MySQL、Redis看下八股,再补个6824,加点go后台的技术栈,9月随便进大厂。CPP后端只能来WXG
点赞 评论 收藏
分享
评论
4
6
分享

创作者周榜

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