不进行替换的滚动最小值
创始人
2024-12-25 22:01:06
0

以下是一个不进行替换的滚动最小值的解决方法的代码示例:

def find_min(nums, k):
    n = len(nums)
    result = []
    window = []

    # 初始化滑动窗口
    for i in range(k):
        while window and nums[i] < nums[window[-1]]:
            window.pop()
        window.append(i)

    # 处理剩余元素
    for i in range(k, n):
        result.append(nums[window[0]])

        # 移除滑动窗口中已经离开的元素
        while window and window[0] <= i - k:
            window.pop(0)

        # 添加当前元素到滑动窗口中
        while window and nums[i] < nums[window[-1]]:
            window.pop()
        window.append(i)

    result.append(nums[window[0]])

    return result

# 测试示例
nums = [4, 3, 5, 4, 3, 3, 6, 7]
k = 3
print(find_min(nums, k))  # 输出: [3, 3, 3, 3, 3, 3]

该方法使用滑动窗口的思想,维护一个递增的双端队列window来保存当前滑动窗口中的最小值的索引。在初始化滑动窗口时,从左到右遍历前k个元素,将大于等于当前元素的索引从队尾弹出,再将当前元素的索引加入队尾。然后,从第k个元素开始遍历,每次都将滑动窗口中的最小值加入结果列表result,然后移除滑动窗口中已经离开的元素的索引,并将大于等于当前元素的索引从队尾弹出,再将当前元素的索引加入队尾。最后,返回结果列表result

相关内容

热门资讯

透视新版!WePOker有没有... 透视新版!WePOker有没有透视方法,wepoker破解器激活码(详细到底是挂了);小薇(透视辅助...
透视挂!aapoker透视脚本... 透视挂!aapoker透视脚本入口(透视)aapoker透视脚本,我来教教你(有挂解说)1)aapo...
辅助透视!wepoker模拟器... 辅助透视!wepoker模拟器哪个,wepoker是不是有人用挂(详细作弊方法)一、wepoker是...
透视辅助!aapoker脚本怎... 透视辅助!aapoker脚本怎么用(透视)aapoker免费透视脚本,黑科技教程(有挂详情);1、a...
透视有挂!wepokerplu... 透视有挂!wepokerplus外挂,wepoker破解器有用吗(详细透视器免费)1、上手简单,内置...
透视实锤!aapoker怎么设... 透视实锤!aapoker怎么设置抽水(透视)aapoker发牌逻辑,解密教程(有挂插件)aapoke...
透视玄学!wepoker代打辅... 透视玄学!wepoker代打辅助,wepoker辅助器激活码(详细-h5下载);1、wepoker辅...
透视安装!aapoker透视插... 透视安装!aapoker透视插件(透视)aapoker能控制牌吗,曝光教程(有挂插件)所有人都在同一...
透视苹果版!wepoker手机... 透视苹果版!wepoker手机助手,wepoker底牌透视(详细可以挂飞机);1、在wepoker底...
透视计算!aapoker免费透... 透视计算!aapoker免费透视脚本(透视)aapoker ai插件,曝光教程(有挂攻略)1、每一步...