企业网站建立庆云县有几家,google 网站打不开,wordpress打开很卡,有哪个网站做icLeetCode 启动#xff01; 每日一题的题解重新开始连载#xff01;
题目#xff1a;预算内的最多机器人数目
题目链接#xff1a;2398. 预算内的最多机器人数目
题目描述 代码与解题思路
func maximumRobots(chargeTimes []int, runningCosts []int, budget int64) (an…LeetCode 启动 每日一题的题解重新开始连载
题目预算内的最多机器人数目
题目链接2398. 预算内的最多机器人数目
题目描述 代码与解题思路
func maximumRobots(chargeTimes []int, runningCosts []int, budget int64) (ans int) {l, sum, mx : 0, 0, []int{0}for r : range chargeTimes {// 求 k 个机器人中最大充电时间单调队列维护一下for len(mx) 0 mx[len(mx)-1] chargeTimes[r] {mx mx[:len(mx)-1]}mx append(mx, chargeTimes[r])// k 个机器人的运行时间之和直接累加sum runningCosts[r]for len(mx) 0 int64(mx[0] (r-l1)*sum) budget { // 维护滑窗if chargeTimes[l] mx[0] { // 注意是遇到单调队列中的最大值才出队列mx mx[1:]}sum - runningCosts[l]l}ans max(ans, r-l1)}return ans
}这道题是一道经典的滑动窗口题目题目要求找预算内连续的最多的机器人数目然后给了一个公式max(chargeTimes) k * sum(runningCosts)简洁明了直接根据这个公式用滑窗即可
求 sum 容易直接累加就行怎么灵活维护一个子数组的最大值呢这就需要用到单调队列通过单调队列实时维护当前子数组的最大值能够很方便的对子数组的最大值进行删改
最后记录下最多的机器人数目并返回即可
视频实况包含往期每日一题可能会有讲解
视频链接【【LeetCode】每日一题 2024_9_13 预算内的最多机器人数目滑动窗口、单调队列】
每天进步一点点 可以和我刷一辈子的每日一题吗 一题一题积累起来就是一辈子。