牛客网 NC204859 组队 滑动窗口
牛客网 NC204859 组队
目录
文章目录
- 牛客网 NC204859 组队
- 目录
- 1. 题目描述
- 1.1. Limit
- 1.2. Problem Description
- 1.3. Input
- 1.4. Output
- 1.5. Sample Input
- 1.6. Sample Output
- 1.7. Note
- 1.8. Source
- 2. 解读
- 3. 代码
1. 题目描述
1.1. Limit
Time Limit: C/C++ 1秒,其他语言2秒
Memory Limit: C/C++ 262144K,其他语言524288K
1.2. Problem Description
你的团队中有 nnn 个人,每个人有一个能力值 aia_iai,现在需要选择若干个人组成一个团队去参加比赛,由于比赛的规则限制,一个团队里面任意两个人能力的差值必须要小于等于 kkk,为了让更多的人有参加比赛的机会,你最多能选择多少个人参加比赛?
1.3. Input
第一行一个整数 TTT,表示案例组数。每个案例有两行:第一行两个正整数 n,kn,kn,k,表示人的数量。第二行n个以空格分隔的整数a_i,表示每个人的能力值。
1.4. Output
每个案例输出一行,表示可以参加比赛的最多人数。
1.5. Sample Input
1
5 3
8 3 5 1 6
1.6. Sample Output
3
1.7. Note
选择能力值为 3,5,63, 5, 63,5,6 或 5,6,85, 6, 85,6,8。
T≤10T \leq 10T≤10
1≤n≤2e51 \leq n \leq 2e51≤n≤2e5
1≤k≤1e91 \leq k \leq 1e91≤k≤1e9
1<=ai<=1e91 <= a_i <= 1e91<=ai<=1e9
1.8. Source
牛客网 NC204859 组队
2. 解读
使用滑动窗口进行计算。
先对数组从小到大进行排序,如果 [left,right][left, right][left,right] 区间内的数都满足 list[right]−list[left]<=klist[right] - list[left] <= klist[right]−list[left]<=k,则 right=right+1right = right + 1right=right+1,否则 left=left+1left = left + 1left=left+1,每滑动一次计算一次 ans=right−leftans = right - leftans=right−left,取所有情况的最大值即可。
3. 代码
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;const int num = 2e5 + 1;
long long list[num];int main(){long long t, n, k, ans, buffer, left, right;scanf("%lld", &t);for(int j = 0; j < t; j++){// 初始化memset(list, 0, sizeof(list));ans = 0;left = 0;right = 1;// 输入scanf("%lld %lld", &n, &k);for(long long i = 0; i < n; i++){scanf("%lld", &list[i]);}// 排序sort(list, list + n);// 计算while(right < n){// 当右端点为n时结束循环if(list[right] - list[left] <= k){// 如果满足条件,最大值和最小值差值小于等于k// 右端点右移right++;}else{// 不满足条件,左端点右移left++;}ans = max(ans, right - left);}printf("%lld\n", ans);}return 0;
}
联系邮箱:curren_wong@163.com
CSDN:https://me.csdn.net/qq_41729780
知乎:https://zhuanlan.zhihu.com/c_1225417532351741952
公众号:复杂网络与机器学习
欢迎关注/转载,有问题欢迎通过邮箱交流。
牛客网 NC204859 组队 滑动窗口相关推荐
- Java算法:牛客网Java版剑指Offer全套算法面试题目整理及电子档,Java算法与数据结构面试题,面试刷题、背题必备!牛客网剑指offer
剑指offer(java版) 牛客网Java版剑指Offer全套题目67道 资源来源于网络 目录 1.二维数组中的查找 2.替换空格 3.从尾到头打印链表 4.重建二叉树 5.用两个栈实现队列 6.旋 ...
- 【牛客网面经整理】阿里面经
作者:OfferOffer多多 链接:https://www.nowcoder.com/discuss/505316?type=post&order=time&pos=&pag ...
- 牛客网Java后端开发面经汇总
感谢牛客网! 文章目录 Java基础知识 计算机网络知识 MySQL.数据库 常用数据结构 操作系统 Spring 设计模式 分布式 Redis Mybatis 消息队列 场景题 手撕代码 Linux ...
- 2021字节跳动秋招整理牛客网---Java后端提前批面试
一.字节提前批 java 后端一面 1.1 你说你用了 RPC 远程调用,讲讲原理是怎么样的 RPC(Remote Procedure Call)远程调用,通过某种手段,协议,约定调用非本地服务 RP ...
- 牛客网算法教程-中级篇-第一章
文章目录 学习目标: 学习内容: 学习时间: 学习产出: 1.旋转词-模拟 2.旋转矩阵-模拟 3.数轴覆盖-贪心 4.1 完整字符串1(括号字符串的有效性)-栈 4.2 完整字符串2(缺失的括号)- ...
- 今日头条后端面经总结(2018.12月)(转自牛客网)
面经(后端): 一 操作系统中的进程和线程还有虚拟存储. 计算机网络TCP和UDP仔细看一下,也不要放过滑动窗口; 还有计算机网络体系结构各层都要熟悉. lambda表达式 spring 智力题,比如 ...
- 校招linux基础知识,校招笔试整理 牛客网 2020小米校招(1)
前端 笔试 选择 牛客网 2020小米校招(1) 2020小米校招 localStorage和cookie 在现代浏览器中, cookie可以在跨域请求中被携带在请求头中 localStorage被设 ...
- 仿牛客网项目第二章:开发社区登录模块(详细步骤和思路)
目录 1. 发送邮件 1.0 三步走 1.1 邮箱设置 1.2 Spring Email 1.3 模板引擎 1.4 发送邮件的过程 1.5 检验发送邮件的过程 2. 开发注册功能 2.0 注册功能的步 ...
- 牛客网剑指offer java 全部题解
经过数月的努力,终于更完了牛客网的66道剑指offer,以下的顺序和大家在牛客网的顺序是一样的(排序也花了不少时间),希望对大家找工作/提高算法能力能起到些许帮助. 每天一道剑指offer-二维数组中 ...
最新文章
- 【数字信号处理】傅里叶变换性质 ( 序列对称分解定理示例 | 共轭对称序列与原序列之间的关系 | 共轭反对称序列与原序列之间的关系 )
- 做折线图的软件_三星Galaxy Labs,它由4个下层软件构成,各有其用
- Spring 配置元数据
- boost::geometry::model::infinite_line用法的测试程序
- 第一天 :学习node.js
- 伪指令endp告诉汇编程序_第2章 指令系统及汇编语言程序设计 题库和答案
- 手机壁纸 NBA群星高清壁纸
- JavaScript异步编程之事件
- python123-python123练习题.doc
- gulp-API介绍
- 学生用计算机如何clean,windows installer clean up,教您电脑如何使用清理实用工具
- MVC案例之DAO层实现
- python小学生入门教程-python 小学生教程|怎么让一个小学生学会Python?
- 商用型虚拟试衣技术亮相CES Asia ,好买衣携手CA催生服装新零售变革
- vnc远程控制软件配置,vnc远程控制软件怎么配置的,教程详解
- 服务器1m带宽文件上传好慢,为什么10m光纤宽带上传速度只有1m还不到2m
- 艺术与实在中的递归 递归和原始递归函数——读哥德尔之六
- 数据分析2——核心思维技巧
- 服务器租用价格与哪些因素有关?
- Chrome浏览器默认全屏启动(非--kiosk模式)