英飞凌TC397实战:ASCLIN模块SPI配置避坑指南(附ILLD库代码)

核心内容摘要

AutoGen Studio创新落地:Qwen3-4B多Agent接入企业OA审批流,实现智能催办与归档
大数据计算机毕设之基于django+深度学习的淘宝用户购物可视化与行为预测系统设计(完整前后端代码+说明文档+LW,调试定制等)

STM32嵌入式热成像系统设计与MLX90640实战调优

力扣题目链接

滑动窗口最大值 - 力扣LeetCode题目描述给你一个整数数组nums有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。

你只可以看到在滑动窗口内的k个数字。

滑动窗口每次只向右移动一位。

返回滑动窗口中的最大值。

示例 1输入nums [1,3,-1,-3,5,3,6,7], k 3输出[3,3,5,5,6,7]解释滑动窗口的位置 最大值 --------------- ----- [1 3 -1] -3 5 3 6 731 [3 -1 -3] 5 3 6 731 3 [-1 -3 5] 3 6 751 3 -1 [-3 5 3] 6 751 3 -1 -3 [5 3 6] 761 3 -1 -3 5 [3 6 7]7这道题很适合用单调队列来写这样外面很容易通过一侧的值就知道最大值了。

什么是单调队列其实就是单调递增或单调递减队列。

那么就用单调递减队列来设计吧。

单调递减队列是左边队列出口处的值最大所以窗口最大值就是索引0处通过队列的pop和push函数来设计吧。

最开始的滑动窗口值只能用push函数通过它让我们的队列成单调递减那么我们先设计push函数。

例单减数列 出口处 9 8 7 4 入口处当要进来的元素比入口处元素大时进来后就不成单减队列了所以要先比较把比他大的元素都弹出然后再将该元素加入队列再设计pop函数由刚才的push函数设计就知道队列里面的元素个数不一定等于滑动窗口里的元素个数。

所以队列的元素个数一定小于等于滑动窗口元素个数。

那么我们就不用每次pop都一定弹出元素。

所以我们要弹出的元素等于出口处元素时才需要弹出元素。

现在就设计完成了单调队列之后就很容易了完整代码func MaxSlidingWindow(nums []int, k int) []int { myque : make(queue,

result : make([]int,

//初始窗口 for i : 0; i k; i { myque.push(nums[i]) } //初始窗口值 result append(result, myque.front()) for i : k; i len(nums); i { myque.pop(nums[i-k]) //移除前面的元素 myque.push(nums[i]) //添加新的元素 result append(result, myque.front()) } return result } // 单调队列(由大到小) type queue []int // 比入口元素大的就弹出元素直到比它小 func (s *queue) push(x int) { for len(*s) 0 x (*s)[len(*s)-1] { *s (*s)[:len(*s)-1] //弹出入口元素 } *s append(*s, x) } // 若移除的元素等于出口元素就弹出 func (s *queue) pop(x int) { if len(*s) 0 x (*s)[0] { *s (*s)[1:] } } // 返回窗口最大值 func (s *queue) front() int { return (*s)[0] }

wankizhd100%veidioasiaa-wankizhd100%veidioasiaa最新ios版v.29.46.35-木蚂蚁应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123