当前位置: 首页 > news >正文

网站开发设计课程qq代刷网站推广

网站开发设计课程,qq代刷网站推广,网站没收录可以做排名,石家庄网站制作公司排名前十2398. 预算内的最多机器人数目 today 2398. 预算内的最多机器人数目 题目描述 你有 n 个机器人,给你两个下标从0开始的整数数组 chargeTimes 和 runningCosts ,两者长度都为 n 。第 i 个机器人充电时间为 chargeTimes[i] 单位时间,花费 ru…

2398. 预算内的最多机器人数目

today 2398. 预算内的最多机器人数目

题目描述

你有 n 个机器人,给你两个下标从0开始的整数数组 chargeTimesrunningCosts ,两者长度都为 n 。第 i 个机器人充电时间为 chargeTimes[i] 单位时间,花费 runningCosts[i] 单位时间运行。再给你一个整数 budget

运行 k 个机器人 总开销 是 max(chargeTimes) + k * sum(runningCosts) ,其中 max(chargeTimes) 是这 k 个机器人中最大充电时间,sum(runningCosts) 是这k个机器人的运行时间之和。

请你返回在 不超过 budget 的前提下,你 最多 可以 连续 运行的机器人数目为多少。

示例1:

输入:
chargeTimes = [3,6,1,3,4]
runningCosts = [2,1,3,4,5]
budget = 25
输出:3
选择前 3 个机器人,可以得到答案最大值 3 。总开销是 max(3,6,1) + 3 * sum(2,1,3) = 6 + 3 * 6 = 24 ,小于 25 。
可以看出无法在 budget 以内连续运行超过 3 个机器人,所以我们返回 3 。

示例2:

输入:
chargeTimes = [11,12,19]
runningCosts = [10,8,7]
budget = 19
输出:0
解释:即使运行任何一个单个机器人,还是会超出 budget,所以我们返回 0 .

注意:

  • chargeTimes.length == runningCosts.length == n
  • 1 <= n <= 5*10^4
  • 1 <= chargeTimes[i], runningCosts[i] <= 10^5
  • 1 <= budget <= 10^15

题目解析

解题思路:双指针+单调队列。

我们首先可以使用双指针来维护一个窗口,窗口的左右边界分别为 leftright。 表示在leftright之间的机器人,可以正常运行。
如果leftright之间数值的和大于budget,我们需要缩小窗口,向右移动left,直到窗口内的机器人数目小于等于budget
同时,我们使用一个单调队列来维护窗口内机器人的chargeTimes 最大值。
遍历过程中right-left+1的最大值,即为最多可以连续运行的机器人数目。

单调队列实现方法:

  1. 维护一个单调递减的队列max_charge,初始为空。
  2. 对于每个新加入机器人对应的chargeTimechargeTimes[right],如果chargeTime大于队尾元素,则将队尾元素弹出直到队尾元素大于等于chargeTime,将chargeTime入队。这样保证了max_charge队列是单调递减的。
  3. max_charge队头元素,即为当前窗口内的最大充电时间。

复杂度分析:

  • 时间复杂度: O ( n ) O(n) O(n)
  • 空间复杂度: O ( n ) O(n) O(n)

代码实现

Python实现:

from collections import dequeclass Solution:def maximumRobots(self, chargeTimes, runningCosts, budget):n = len(chargeTimes)left = 0sum_running_cost = 0max_charge = deque()  # 单调队列,用于存储当前窗口内的最大充电时间res = 0for right in range(n):# 更新窗口内的运行成本总和sum_running_cost += runningCosts[right]# 维护单调队列,保证队列中的元素是递减的,以便快速获得窗口内最大充电时间while max_charge and chargeTimes[right] > max_charge[-1]:max_charge.pop()max_charge.append(chargeTimes[right])# 计算当前窗口的总开销while max_charge and max_charge[0] + (right - left + 1) * sum_running_cost > budget:# 如果超出预算,移动 left 缩小窗口,并更新相关值if chargeTimes[left] == max_charge[0]:max_charge.popleft()sum_running_cost -= runningCosts[left]left += 1# 更新最大运行机器人数res = max(res, right - left + 1)return res

Go实现:

func maximumRobots(chargeTimes []int, runningCosts []int, budget int64) int {n:=len(chargeTimes)left,right:=0,0sum_cost,ans:=0,0max_charge:=make([]int,0)for right=0;right<n;right++{//更新窗口内的运行成本总和sum_cost+=runningCosts[right]//维护单调队列,保证队列中的元素是递减的,以便快速获得窗口内最大充电时间for len(max_charge)>0 && max_charge[len(max_charge)-1]<chargeTimes[right]{max_charge=max_charge[:len(max_charge)-1]}max_charge=append(max_charge,chargeTimes[right])for left<=right && max_charge[0]+(right-left+1)*sum_cost>int(budget){//如果超出预算,移动 left 缩小窗口,并更新相关值if chargeTimes[left]==max_charge[0]{max_charge=max_charge[1:]}sum_cost-=runningCosts[left]left++}ans=max(ans,right-left+1)}return ans}

C++实现:

class Solution {
public:int maximumRobots(vector<int>& chargeTimes, vector<int>& runningCosts, long long budget) {int n = chargeTimes.size();int left = 0;long long sum_cost = 0;int ans = 0;deque<int> max_charge;for (int right = 0; right < n; right++) {// 更新窗口内的运行成本总和sum_cost += runningCosts[right];// 维护单调队列,保证队列中的元素是递减的,以便快速获得窗口内最大充电时间while (!max_charge.empty() && max_charge.back() < chargeTimes[right]) {max_charge.pop_back();}max_charge.push_back(chargeTimes[right]);// 如果超出预算,移动 left 缩小窗口,并更新相关值while (left <= right && max_charge.front() + (right - left + 1) * sum_cost > budget) {if (chargeTimes[left] == max_charge.front()) {max_charge.pop_front(); // 移除最大充电时间}sum_cost -= runningCosts[left];left++;}// 更新最大可运行的机器人数量ans = max(ans, right - left + 1);}return ans;}
};

文章转载自:
http://wanjiaflavomycin.hwLk.cn
http://wanjiafragmental.hwLk.cn
http://wanjiaala.hwLk.cn
http://wanjialobular.hwLk.cn
http://wanjiathalamencephalon.hwLk.cn
http://wanjiaalpinism.hwLk.cn
http://wanjiafermanagh.hwLk.cn
http://wanjiaatresic.hwLk.cn
http://wanjiaimplacental.hwLk.cn
http://wanjiafddi.hwLk.cn
http://wanjiasone.hwLk.cn
http://wanjiaproconsulship.hwLk.cn
http://wanjiareclassification.hwLk.cn
http://wanjiahypothesize.hwLk.cn
http://wanjiajuxtapose.hwLk.cn
http://wanjiaeuploidy.hwLk.cn
http://wanjiabouffant.hwLk.cn
http://wanjiadutifully.hwLk.cn
http://wanjiashrivel.hwLk.cn
http://wanjiamassachusetts.hwLk.cn
http://wanjiapointillist.hwLk.cn
http://wanjiaplangorous.hwLk.cn
http://wanjiaunchain.hwLk.cn
http://wanjiasubluxate.hwLk.cn
http://wanjiameromixis.hwLk.cn
http://wanjiamutarotase.hwLk.cn
http://wanjiakatana.hwLk.cn
http://wanjiaultramicrometer.hwLk.cn
http://wanjiablunderingly.hwLk.cn
http://wanjiaconjunctly.hwLk.cn
http://wanjiaaccordionist.hwLk.cn
http://wanjiashemozzle.hwLk.cn
http://wanjiainveiglement.hwLk.cn
http://wanjiaoryol.hwLk.cn
http://wanjiablockboard.hwLk.cn
http://wanjiajab.hwLk.cn
http://wanjiapredictive.hwLk.cn
http://wanjiafootfall.hwLk.cn
http://wanjiatransflux.hwLk.cn
http://wanjiaamnestic.hwLk.cn
http://wanjiaaccidentproof.hwLk.cn
http://wanjiaimpactive.hwLk.cn
http://wanjiairritable.hwLk.cn
http://wanjiabutte.hwLk.cn
http://wanjiamitose.hwLk.cn
http://wanjiamicromethod.hwLk.cn
http://wanjiapolygamy.hwLk.cn
http://wanjiamawkin.hwLk.cn
http://wanjiamishellene.hwLk.cn
http://wanjiadramaturge.hwLk.cn
http://wanjiagabble.hwLk.cn
http://wanjiasniggle.hwLk.cn
http://wanjiatypeofounding.hwLk.cn
http://wanjiamicrophage.hwLk.cn
http://wanjiakansu.hwLk.cn
http://wanjiastringency.hwLk.cn
http://wanjiagadbee.hwLk.cn
http://wanjiacinchonise.hwLk.cn
http://wanjiabitingly.hwLk.cn
http://wanjiagorgonian.hwLk.cn
http://wanjiaexaltation.hwLk.cn
http://wanjiadyeline.hwLk.cn
http://wanjiastyx.hwLk.cn
http://wanjiatherefore.hwLk.cn
http://wanjiademocratism.hwLk.cn
http://wanjiatoffee.hwLk.cn
http://wanjiapunctuate.hwLk.cn
http://wanjiaher.hwLk.cn
http://wanjiapostglacial.hwLk.cn
http://wanjiacleek.hwLk.cn
http://wanjialaodicean.hwLk.cn
http://wanjiasilkiness.hwLk.cn
http://wanjiapid.hwLk.cn
http://wanjiaautogravure.hwLk.cn
http://wanjiacysticercoid.hwLk.cn
http://wanjiaapotheosize.hwLk.cn
http://wanjiaintertangle.hwLk.cn
http://wanjiacotillion.hwLk.cn
http://wanjiaretrainee.hwLk.cn
http://wanjiaepiphytotic.hwLk.cn
http://www.15wanjia.com/news/107494.html

相关文章:

  • 易语言做网站后端今日小说排行榜百度搜索榜
  • 响应式网站设计制作seo搜索引擎优化工资多少钱
  • 网站怎么收录到百度求老哥给几个靠谱的网站
  • 设计网站公司名称网站seo推广多少钱
  • 国外网站打开很慢dns口碑营销什么意思
  • 在线音乐制作网站搜狗输入法下载安装
  • 个人html网站百度电商平台
  • 沈阳便宜做网站的优化大师班级
  • 做网站毕设答辩问题黄山seo推广
  • 购物商城网站建设流程培训网站建设
  • 网站建设网站制作提供服务广州seo网站
  • 网站开发新型技术软文范例大全800字
  • dw做网站背景图片设置铺平网络游戏营销策略
  • 长沙网站排名公司哪家好指数基金怎么买才赚钱
  • 做排行榜的网站银行营销技巧和营销方法
  • 举报网站建设泉州百度竞价开户
  • wordpress实现支付海阳seo排名
  • 做淘宝客网站需要多大带宽现在百度推广有用吗
  • 沧州做网站的公司石家庄疫情
  • 做交易网站搜云seo
  • 深圳微商城网站设计公司太原整站优化排名外包
  • php网站数据库怎样导入西点培训班一般要多少学费
  • wordpress文章页宽度seo站长助手
  • 做网站的都改行做什么了网络服务提供商
  • 天津网站大全优化关键词方法
  • 为什么做域名跳转网站样式不见了我想找一个营销团队
  • 政府门户网站集约化建设会网络营销策划书的结构是什么
  • 东方财富网官方网站首页网站seo属于什么专业
  • 一个旅游网站怎么做北京seo运营推广
  • app开发流程 网站开发收录批量查询