单调双向队列

闻缺陷则喜何志丹9 个月前
数据结构·c++·算法·leetcode·二叉树·单调双向队列·最大值
【二叉树】【单调双向队列】LeetCode239:滑动窗口最大值map|动态规划|单调栈|LeetCode975:奇偶跳单调双向队列 二叉树给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 输出:[3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值
闻缺陷则喜何志丹9 个月前
c++·算法·leetcode·前缀和·贪心·单调双向队列·数学证明
前缀和+单调双队列+贪心:LeetCode2945:找到最大非递减数组的长度C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 单调双队列 贪心给你一个下标从 0 开始的整数数组 nums 。 你可以执行任意次操作。每次操作中,你需要选择一个 子数组 ,并将这个子数组用它所包含元素的 和 替换。比方说,给定数组是 [1,3,5,6] ,你可以选择子数组 [3,5] ,用子数组的和 8 替换掉子数组,然后数组会变为 [1,8,6] 。 请你返回执行任意次操作以后,可以得到的 最长非递减 数组的长度。 子数组 指的是一个数组中一段连续 非空 的元素序列。 示例
闻缺陷则喜何志丹1 年前
c++·算法·前缀和·机器人·滑动窗口·单调双向队列·最多连续
C++前缀和算法的应用:预算内的最多机器人数目C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 单调双向队列 滑动窗口你有 n 个机器人,给你两个下标从 0 开始的整数数组 chargeTimes 和 runningCosts ,两者长度都为 n 。第 i 个机器人充电时间为 chargeTimes[i] 单位时间,花费 runningCosts[i] 单位时间运行。再给你一个整数 budget 。 运行 k 个机器人 总开销 是 max(chargeTimes) + k * sum(runningCosts) ,其中 ma
闻缺陷则喜何志丹1 年前
开发语言·c++·算法·前缀和·双指针·单调双向队列·双向队列
C++前缀和算法的应用:从仓库到码头运输箱子原理、源码、测试用例C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 双指针 单调双向队列你有一辆货运卡车,你需要用这一辆车把一些箱子从仓库运送到码头。这辆卡车每次运输有 箱子数目的限制 和 总重量的限制 。 给你一个箱子数组 boxes 和三个整数 portsCount, maxBoxes 和 maxWeight ,其中 boxes[i] = [portsi, weighti] 。 portsi 表示第 i 个箱子需要送达的码头, weightsi 是第 i 个箱子的重量。 portsCount