【题解】AB33 相差不超过k的最多数(排序 + 滑动窗口)

https://www.nowcoder.com/practice/562630ca90ac40ce89443c91060574c6?tpId=308&tqId=40490&ru=/exam/oj

排序 + 滑动窗口

cpp 复制代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int n, k;
    cin >> n >> k;
    vector<int> v(n);
    for (int i = 0; i < n; ++i) {
        cin >> v[i];
    }
    sort(v.begin(), v.end());

    // 滑动窗口
    int ret = 0;
    for (int left=0, right=1; right < n; ++right) {
        while(v[right] - v[left] > k) {
            ++left;
        }
        int len = right - left + 1;
        if (ret < len) ret = len;
    }
    cout << ret << endl;

    return 0;
}
相关推荐
本杰明1521 分钟前
2025/7/14——java学习总结
java·开发语言·学习
2345VOR6 分钟前
【C#地图显示教程:实现鼠标绘制图形操作】
开发语言·c#·计算机外设·地图显示鼠标交互
开开心心_Every12 分钟前
可增添功能的鼠标右键优化工具
开发语言·pdf·c#·计算机外设·电脑·音视频·symfony
洛克希德马丁12 分钟前
QTableView鼠标双击先触发单击信号
c++·qt
星释12 分钟前
优雅的Java:01.数据更新如何更优雅
java·开发语言·spring boot
The_era_achievs_hero13 分钟前
微信131~140
开发语言·javascript·微信
LeonYangRyeon14 分钟前
解锁SQL“密码”:SELECT DISTINCT END AS的深度剖析与实战指南
java·开发语言
ysa05103020 分钟前
竞赛常用加速技巧#模板
c++·笔记·算法
7 9723 分钟前
C语言基础知识--文件的顺序读写与随机读写
java·数据结构·算法
2401_8410039823 分钟前
Kubernetes 资源管理全解析
算法·贪心算法