滑动窗口问题

最长含有不小于x的子数组

cs 复制代码
#include <stdio.h>

int main() {
    int n;
    long long x, k;  // x 和 k 可能很大,用 long long
    scanf("%d %lld %lld", &n, &x, &k);

    long long a[100005];  // 根据数据规模 n <= 10^5
    for (int i = 0; i < n; i++) {
        scanf("%lld", &a[i]);
    }

    int left = 0;
    int count = 0;  // 当前窗口内 >= x 的元素个数
    int max_len = -1;

    for (int right = 0; right < n; right++) {
        // 扩展右边界
        if (a[right] >= x) {
            count++;
        }

        // 如果当前窗口内有效元素个数超过了 k,收缩左边界
        while (count > k) {
            if (a[left] >= x) {
                count--;
            }
            left++;
        }

        // 如果当前窗口内有效元素个数正好是 k,更新最大长度
        if (count == k) {
            int current_len = right - left + 1;
            if (current_len > max_len) {
                max_len = current_len;
            }
        }
    }

    printf("%d\n", max_len);
    return 0;
}
相关推荐
W23035765733 小时前
经典算法:最长上升子序列(LIS)深度解析 C++ 实现
开发语言·c++·算法
2401_892070984 小时前
链栈(链式栈) 超详细实现(C 语言 + 逐行精讲)
c语言·数据结构·链栈
minji...4 小时前
Linux 线程同步与互斥(三) 生产者消费者模型,基于阻塞队列的生产者消费者模型的代码实现
linux·运维·服务器·开发语言·网络·c++·算法
语戚5 小时前
力扣 968. 监控二叉树 —— 贪心 & 树形 DP 双解法递归 + 非递归全解(Java 实现)
java·算法·leetcode·贪心算法·动态规划·力扣·
skywalker_115 小时前
力扣hot100-7(接雨水),8(无重复字符的最长子串)
算法·leetcode·职场和发展
bIo7lyA8v6 小时前
算法稳定性分析中的输入扰动建模的技术9
算法
CoderCodingNo6 小时前
【GESP】C++三级真题 luogu-B4499, [GESP202603 三级] 二进制回文串
数据结构·c++·算法
sinat_286945196 小时前
AI Coding 时代的 TDD:从理念到工程落地
人工智能·深度学习·算法·tdd
炽烈小老头7 小时前
【 每天学习一点算法 2026/04/12】x 的平方根
学习·算法