当前位置: 首页> 健康> 科研 > 台山网站设计_龙岗seo培训_seo网站排名优化教程_网络营销主要做什么

台山网站设计_龙岗seo培训_seo网站排名优化教程_网络营销主要做什么

时间:2025/7/10 1:13:34来源:https://blog.csdn.net/chenziang1/article/details/145931087 浏览次数:0次
台山网站设计_龙岗seo培训_seo网站排名优化教程_网络营销主要做什么

给你一个整数数组 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  7       31 [3  -1  -3] 5  3  6  7       31  3 [-1  -3  5] 3  6  7       51  3  -1 [-3  5  3] 6  7       51  3  -1  -3 [5  3  6] 7       61  3  -1  -3  5 [3  6  7]      7

示例 2:

输入:nums = [1], k = 1
输出:[1]
class Solution(object):def maxSlidingWindow(self, nums, k):""":type nums: List[int]:type k: int:rtype: List[int]"""def push(x,max_queue):while max_queue:if max_queue[-1]<x:del max_queue[-1]else:breakmax_queue+=[x]# print(max_queue)def pop(x,max_queue):if max_queue[0]==x:del max_queue[0]res= []max_queue = []for i in range(min(len(nums),k)):push(nums[i],max_queue)res.append(max_queue[0])for i in range(k,len(nums)):pop(nums[i-k],max_queue)push(nums[i],max_queue)res.append(max_queue[0])return res

主要难点是原本复杂度是nk,现在我想变成n,怎么办呢,自己设计一个有限队列,保存最大的元素,设计oush和pop的算法。push逻辑是push一个吧前面比他小的删除,pop的逻辑是判断队伍第一个是不是该pop的元素,如果是就pop

关键字:台山网站设计_龙岗seo培训_seo网站排名优化教程_网络营销主要做什么

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: