9.17滴滴笔试

选择有20个,大概有概率,机器学习,C代码,Python基础知识。

编程两道题
1. 一组由数字和?组成的字符串,需要猜?代表的位对应的数字并使整个string代表的数字最小,同时保证不能有前导0,且数可以被3整除。
不知道有什么思路,先找到最后一个?的位置,就是在string前面最一开始加一个0,然后遍历同时判断左右位置;然后最后在判断最后一个位置。但是只过了27%用例。。。

2. 栅栏涂色。每次选择一个区间进行涂色,并规定每个位置1号涂色p次同时2号涂色q次才可以成功,问最后有多少栅栏涂色成功。
思路:用数组存储对应位置的差,然后再一次遍历统计前缀和即可。但是最后我只过了18%的用例,原因在写到这里的时候想到了,是最后判断的时候p,q我直接用2算的。。。没时间改了。。。好无语
把最后判断2改成p和q即可。
n, p, q = map(int, input().split())
arr = []
maxi = 0
res = 0
for i in range(3):
    row = list(map(int, input().split()))
    if i == 0&nbs***bsp;i == 1:
        maxi = max(maxi, max(row))
    arr.append(row)

nums1 = [0]*(maxi+1)
nums2 = [0]*(maxi+1)

for j in range(n):
    l, r, sig = arr[0][j], arr[1][j], arr[2][j]
    if sig == 1:
        nums1[l-1] += 1
        nums1[r] -= 1
    else:
        nums2[l-1] += 1
        nums2[r] -= 1
for i in range(1, len(nums1)):
    nums1[i] += nums1[i-1]
for j in range(1, len(nums2)):
    nums2[j] += nums2[j-1]
for k in range(max(len(nums1), len(nums2))):
    if nums1[k] >= 2 and nums2[k] >= 2:
        res += 1
print(res)


#滴滴##滴滴笔试#
全部评论
就算改了也会超时,这个数据得离散化,要不然太大了
点赞 回复 分享
发布于 2022-09-17 16:56 湖北
line 27: 是>=p >=q,不是>=2
点赞 回复 分享
发布于 2022-09-17 16:59 北京
第二题感觉是珂朵莉树,但是好久没写,花的时间太多了,代码还没保存上就没时间了
点赞 回复 分享
发布于 2022-09-17 17:14 浙江
同学,考虑来恒生电子吗?😁😁😁😁恒生2023校园招聘开始了,现在刚开放秋招岗位,大量岗位空缺,机会多多哦!需要的小伙伴可以找我内推哦。 Hi,我是恒生招聘,我在恒生电子股份有限公司帮你内推~ 您可登录链接:[campus.hundsun.com] 进行投递,投递之前填写我的推荐码:  IS3MJ0 我就可以帮您内推哦~内推码:    IS3MJ0 还可以微信关注恒生招聘来手机投递简历哦
点赞 回复 分享
发布于 2022-09-17 17:28 浙江

相关推荐

头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
废铁汽车人:秋招真是牛鬼蛇神齐聚一堂
点赞 评论 收藏
分享
评论
点赞
2
分享
牛客网
牛客企业服务