2021美团笔试准备3.27

本文分享了2021年美团笔试的相关题目,包括淘汰分数问题,如何将序列调整为1到n的正则序列,最优二叉树问题,糕点问题的解答,环形数组的最大连续子数组求解,书架借书问题以及LeetCode的火星词典问题,涉及多种算法和逻辑思考。
摘要由CSDN通过智能技术生成


怂呀怂呀怂,推了一周又一周 -_-

牛客

淘汰分数

题目描述

a = list(map(int, input().split()))
nums = list(map(int, input().split()))
n = a[0]    # 人数
x = a[1]    # 区间下限
y = a[2]    # 区间上限
nums.sort()
stack = []
for i in range(n):
    stack.append(nums[i])
    
    # 淘汰数量在区间内(stack中) AND 晋级选手在区间内(数组中的剩余)
    if len(stack) >= x and len(stack) <= y and n-i-1 >= x and n-i-1 <= y:
        break

res = 0
if len(stack) != n:    # 由于满足条件跳出,返回结果
    res = stack.pop()
    print(res)
else:    # 循环结束,没找到
    print(-1)
    

正则序列

n个数变成,1,2,3…n。一次操作 一个数加一或者减一,达成正则序列需要多少次操作。

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

times = 0
for i in range(1, n + 1):
    times += abs(i - nums[i
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值