【题解】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;
}
相关推荐
Тиё Сиротака6 小时前
红包分配算法的严格数学理论与完整实现
算法
故事不长丨6 小时前
C#定时器与延时操作的使用
开发语言·c#·.net·线程·定时器·winform
hefaxiang6 小时前
C语言常见概念(下)
c语言·开发语言
“αβ”6 小时前
MySQL表的操作
linux·网络·数据库·c++·网络协议·mysql·https
potato_may6 小时前
链式二叉树 —— 用指针构建的树形世界
c语言·数据结构·算法·链表·二叉树
欧阳天风6 小时前
js实现鼠标横向滚动
开发语言·前端·javascript
十五年专注C++开发7 小时前
Asio2: 一个基于 Boost.Asio 封装的高性能网络编程库
网络·c++·boost·asio·asio2
gcfer7 小时前
CS144 中的C++知识积累
c++·右值引用·智能指针·optional容器
java修仙传7 小时前
每日一题,力扣560. 和为 K 的子数组
算法·leetcode
yue0087 小时前
C# Directory的用法介绍
开发语言·c#