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/

相关推荐
binishuaio21 分钟前
java 实训第12天 (git版本控制继续)
java·开发语言·git
我们的五年25 分钟前
【C++课程学习】:string的模拟实现
c语言·开发语言·c++·学习
清源妙木真菌25 分钟前
c++:智能指针
开发语言·c++
咕噜Yuki060926 分钟前
Java基础篇:学会这些技能,程序员职场竞争力UP UP
java·开发语言·编程语言
Hdnw28 分钟前
Java异常体系结构
java·开发语言·error
Pioneer0000130 分钟前
Spring Boot应用开发:从入门到精通
spring boot·后端·firefox
我命由我1234540 分钟前
CesiumJS 案例 P20:监听鼠标滚轮、监听鼠标左键按下与松开、监听鼠标右键按下与松开、监听鼠标左击落点
开发语言·前端·javascript·前端框架·html·css3·html5
L_cl44 分钟前
数据结构与算法——Java实现 51.力扣700题——二叉搜索树中的搜索操作
算法·leetcode·职场和发展
passer__jw76744 分钟前
【LeetCode】【算法】160.相交链表
算法·leetcode·链表
程序员雷叔1 小时前
外包功能测试就干了4周,技术退步太明显了。。。。。
功能测试·测试工具·面试·职场和发展·单元测试·测试用例·postman