阿里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 20:24
秋招专场
校招火热招聘中
官网直投
我第二题先判断相等,再判断不等但求和为N,过了20🤣
点赞
送花
回复 分享
发布于 2020-07-24 20:25
看到大家都只a了一道,我就放心了😂
点赞
送花
回复 分享
发布于 2020-07-24 20:47
请问第一题是怎么理解呢
点赞
送花
回复 分享
发布于 2020-07-24 20:52
牛啤
点赞
送花
回复 分享
发布于 2020-07-24 21:26
第二题过了40%,剩下的超时,看了半个小时也不知道怎么优化。。。
点赞
送花
回复 分享
发布于 2020-07-24 22:09
求个问题描述
点赞
送花
回复 分享
发布于 2020-07-24 22:53

相关推荐

4 6 评论
分享
牛客网
牛客企业服务