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

alt

考试平台: 赛码

题目类型: 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分别存储每个同学的能

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

🔥笔试编程真题宝典💯 文章被收录于专栏

📕分享大厂机试真题深度剖析核心考点,助你速通面试。

全部评论

相关推荐

个人bg:211本硕岗位:数据开发投递日期:3.31当前状态:4.8&nbsp;一面没做3.31笔试,事实证明腾讯笔试做不做确实不重要,不影响进度。一面一共时长1.5h,算是目前面的最久的了,八股部分几乎简历上不管写的熟悉的还是了解的都问了个遍,项目反而没怎么问,面试官说感觉没啥可问的…一开始聊了一些之前的实习内容,杂七杂八的1、http协议格式2、get和post区别(这俩都是从实习引出来的,奈何没准备都没答上来,面试官看出来我不太熟就跳过了)3、研究生期间做过的项目4、HDFS文件上传流程5、一个block多大6、HDFS小文件问题处理7、union和union&nbsp;all区别8、drop/delete/truncate区别9、having语句怎么使用10、视图干嘛用的11、COUNT(1)和COUNT(*)和COUNT(列名)区别12、hive中sort&nbsp;by和order&nbsp;by区别13、数据倾斜从发生到优化完整过程14、【SQL题】求每个班级各科总分排名前10学生15、java中ArrayList和LinkedList实现上的区别,适用场景,是否线程安全16、java垃圾回收机制(这个是真记不清了…我一个数开的真难啊)17、java实现多线程方法18、常见排序方法以及复杂度分析19、死锁条件20、linux中常用命令以及一个场景问题编写对应命令21、【算法题】合并K个升序链表22、【场景题】12306订座系统我会如何实现(难蚌,反正说了一大堆凑合吧)23、最后我反问了下好像没怎么问数仓项目,是不是岗位不是很match,结果面试官给又加时10分钟,总体就是聊了下项目业务和分层相关总结:感觉可能是和面试官不太投的来,所以问的很杂,不过总体来说没有很刁难,会的就会深入问,不太会的就浅尝辄止。yysy腾讯面试进度是真快,刚面完没多久就显示进入复试了,还不错。
点赞 评论 收藏
转发
2 1 评论
分享
牛客网
牛客企业服务