9.27 百度笔试 算法卷AC

先简单记一下,明天面试完在来写详细的
第一题,统计数组中,差为k的数对的个数。
思路:参考两数之和
from collections import defaultdict

n,k = tuple(map(int ,input().split()))
nums = list(map(int , input().split()))

diffk = defaultdict(int)
res = 0
for num in nums:
    res += diffk.get(num , 0)
    diffk[num + k] += 1
    diffk[num - k] += 1
print(res)
第二题,最少攀登的次数
思路:用一个大顶堆来维护已经爬过的山的奖励,当遇到过不去的时候,就从已经爬过的山中不断找奖励最大的来爬。
#5 3
#3 2 5 4 6
#1 2 1 3 0
#2

#1 2
#3
#100
#-1

import heapq

n,k0 = tuple(map(int , input().split()))
h = list(map(int , input().split()))
a = list(map(int , input().split()))

prev = []
heapq.heapify(prev)
res = 0
k = k0
flag = 1
for i in range(n):
    if k >= h[i]:
        heapq.heappush(prev,-a[i])
    else:
        while k < h[i] and prev != []:
            k -= heapq.heappop(prev)
            res += 1
        heapq.heappush(prev,-a[i])
        
    if k < h[i]:
        flag = 0
        break

if flag == 0:
    print(-1)
else:
    print(res)



#秋招#
全部评论
百度比完就给面了?这么块?
点赞 回复 分享
发布于 2022-09-30 16:01 河北

相关推荐

能干的三文鱼刷了100道题:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-24 20:25
腾讯今年实习招了这么多人,后面秋招还会招人吗??想着秋招再战来着
牛客965593684号:腾讯好像2020年之后就是实习生招得多,应届生基本上不招,纯实习转正
点赞 评论 收藏
分享
评论
3
7
分享

创作者周榜

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