Rust 力扣 - 2653. 滑动子数组的美丽值

文章目录

题目描述

题解思路

我们遍历长度为k的的窗口

因为数据范围比较小,所以我们可以通过计数排序找到窗口中第k小的数

  • 如果小于0,则该窗口的美丽值为第k小的数
  • 如果大于等于0,则该窗口的美丽值为0

题解代码

rust 复制代码
impl Solution {
    pub fn get_subarray_beauty(nums: Vec<i32>, k: i32, x: i32) -> Vec<i32> {
        let mut cnt = [0; 101];

        let get_beauty = |cnt: &mut [i32]| -> i32 {
            let mut count = 0;
            for i in 0..101 {
                count += cnt[i];

                if count >= x {
                    if i < 50 {
                        return i as i32 - 50;
                    }

                    return 0
                }
            }

            0
        };

        for i in 0..k as usize {
            cnt[(nums[i] + 50) as usize] += 1;
        }

        let mut ans = vec![0; nums.len() - k as usize + 1];

        ans[0] = get_beauty(&mut cnt);

        for i in k as usize..nums.len() {
            cnt[(nums[i - k as usize] + 50) as usize] -= 1;
            cnt[(nums[i] + 50) as usize] += 1;

            ans[i - k as usize + 1] = get_beauty(&mut cnt);
        }

        ans
    }
}

题目链接

https://leetcode.cn/problems/sliding-subarray-beauty/

相关推荐
JavaGuru_LiuYu2 分钟前
Spring Boot 整合 SSE(Server-Sent Events)
java·spring boot·后端·sse
xuejianxinokok6 分钟前
如何在 Rust 中以惯用方式使用全局变量
后端·rust
爬山算法6 分钟前
Hibernate(26)什么是Hibernate的透明持久化?
java·后端·hibernate
彭于晏Yan8 分钟前
Springboot实现数据脱敏
java·spring boot·后端
漫随流水8 分钟前
leetcode算法(94.二叉树的中序遍历)
数据结构·算法·leetcode·二叉树
每天吃饭的羊12 分钟前
媒体查询
开发语言·前端·javascript
北海有初拥21 分钟前
Python基础语法万字详解
java·开发语言·python
alonewolf_9924 分钟前
Spring IOC容器扩展点全景:深入探索与实践演练
java·后端·spring
super_lzb27 分钟前
springboot打war包时将外部配置文件打入到war包内
java·spring boot·后端·maven
阿里嘎多学长32 分钟前
2026-01-02 GitHub 热点项目精选
开发语言·程序员·github·代码托管