T2. 排队选人 - 小米前端笔试编程题解

考试平台: 赛码

题目类型: 20道选择 + 2道编程题

考试时间: 2024-03-23 (两小时)

题目描述

小D是一名老师,他想选出一些同学参加一个团体比赛。

总共有n个同学,每个同学有一个能力值x和一个合作值y,小D将这些同学排成一排。

选人的规则如下:

  • 小D将选择一排中连续的k个同学参加比赛,而且为了保证比赛成绩,这k个同学的能力值不影小于a,合作值不能小于b。

小D想知道总共有多少种可能的选人方案。

输入描述

第一行四个正整数n,k,a,b。

第二行n个通过空格隔开的正整数表示一排n个同学的能力值。

第三行n个通过空格隔开的正整数表示一排n个同学的合作值。

输出描述

输出一个非负整数表示选人方案数。

样例输入

复制代码
10 2 2 4
2 2 9 1 8 1 6 1 7 7
4 8 5 1 9 4 1 3 9 4

样例输出

复制代码
3

提示

有选择第1,2两个人,第2,3两个人,第9,10两个人三种方案。

n <= 80000,保证k<=n月x,y,a,b<=100000

题解

这道题属于数组和滑动窗口类型的算法题。解题思路是使用滑动窗口来统计符合条件的连续k个同学的选人方案数。

代码大致描述:

  1. 首先读取输入的n、k、a、b以及每个同学的能力值和合作值。
  2. 使用两个数组ab和co分别存储每个同学的能力值和合作值。
  3. 设置一个变量cnt来统计当前滑动窗口内符合条件的同学数量,初始化为0。
  4. 遍历滑动窗口,从第一个同学开始,依次判断每个同学是否符合条件:
    • 如果符合条件,则cnt加1。
    • 如果窗口大小超过k,需要将窗口左边界的同学移除,同时更新cnt。
    • 如果cnt等于k,说明当前窗口内的同学符合条件,将结果计数器result加1。
  5. 最终输出结果result。

时间复杂度:该算法的时间复杂度为O(n),其中n为同学数量。

空间复杂度:该算法的空间复杂度为O(n),需要两个数组来存储同学的能力值和合作值。

python 复制代码
n,k,a,b = map(int,input().split())

ab = list(map(int,input().split())) # 能力值
co = list(map(int, input().split())) # 合作值

cnt = 0 # 统计当前滑动窗口内符合条件的同学数量
for i in range(k-1):
    if ab[i] >= a and co[i] >= b:
        cnt += 1

result = 0
for i in range(k-1, n):
    if ab[i] >= a and co[i] >= b:
        cnt += 1
    if i >= k:
        if ab[i - k] >= a and co[i - k] >= b:
            cnt -= 1
    if cnt == k:
        result += 1
print(result)

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

相关推荐
信誓旦旦的程序猿3 小时前
【Python量化实战宝典 #08】可转债与债券接口手册:转股价·溢价率·纯债价值(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
砚底藏山河3 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
今年下半年3 小时前
AI智能体项目实战记录(02):初始化 Python 项目
开发语言·人工智能·python·fastapi
Williamtym3 小时前
PickGo Lab实践:用浏览器、Python和MCP串起机器人搬运仿真
开发语言·python·机器人
HPtiger3 小时前
数据结构——选择排序
数据结构·算法·排序算法
康实训3 小时前
老年评估仿真实训平台架构设计与老年人能力评估实训室教学落地实践
大数据·人工智能·算法·实训室·实训室建设
DongQiShanRen4 小时前
六根硬件映射(四):归属澄清、两处不一致与卷十一总表
开发语言·人工智能·算法·rust·哈希算法·集成学习
CS创新实验室4 小时前
Python 对象“死“了之后去了哪?——引用计数与分代垃圾回收
开发语言·jvm·python
CCblandy4 小时前
雪花 ID 四个边界实测:时钟回拨重号 500 个,前端 JSON.parse 直接丢精度
后端·python·算法·性能优化·架构
原则猫4 小时前
UDP 到底怎么实现可靠的
前端