天博体育 2026-03-23: 完成通盘送货任务的最少时辰。用go谈话, 有两架送货

发布日期:2026-03-24 08:17    点击次数:68

天博体育 2026-03-23: 完成通盘送货任务的最少时辰。用go谈话, 有两架送货

2026-03-23:完成通盘送货任务的最少时辰。用go谈话,有两架送货无东说念主机,对应两个长度为 2 的整数数组:

步地如下:

• 每次送货固定耗时 1 小时

• 在团结时辰内,最多只可有一架无东说念主机实行送货任务

• 无东说念主机 i 在时辰为 ri 的倍数时必须进行充电,充电时间不可送货

目的是合理安排两架无东说念主机的使命与充电时辰,使得通盘送货任务沿途完成,并复返所需的最短总时辰(单元:小时,整数)。

d = [d1, d2]。

1

r = [r1, r2]。

2

输入: d = [3,1], r = [2,3]。

输出: 5。

诠释:

第一架无东说念主机在第 1、3、5 小时送货(在第 2、4 小时充电)。

第二架无东说念主机在第 2 小时送货(在第 3 小时充电)。

题目来独力扣3733。

代码解题历程:

第一步:证据中枢公式f(d, r)的含义

函数f(d, r) = d + (d-1)/(r-1)(整数除法)是单架无东说念主机颓落完成任务的最短时辰。

• 单架无东说念主机步地:每r小时必须充电1小时,每次送货1小时,团结时辰只颖悟一件事;

• 公式含义:总时辰 = 送货总耗时 + 充电总耗时;

• 例如考据:

1. 第一架无东说念主机:d1=3次,r1=2小时充电一次

送货3次耗时3小时,充电次数=(3-1)/(2-1)=2次,总时辰=3+2=5小时;

2. 第二架无东说念主机:d2=1次,r2=3小时充电一次

送货1次耗时1小时,充电次数=(1-1)/(3-1)=0次,总时辰=1+0=1小时。

第二步:贪图两架无东说念主机充电周期的最小公倍数lcm(r1, r2)

代码先算最大契约数gcd,再算最小公倍数lcm(两个数的群众充电周期):

1. 贪图gcd(2,3):2和3的最大契约数是1;

2. 贪图lcm(2,3):2*3/1=6,即两架无东说念主机每6小时会同期充电一次。

第三步:贪图两架无东说念主机联结完成总任务的最短时辰

总送货次数 = d1+d2 = 3+1=4次,天博体育群众充电周期lcm=6;

代入公式得联结时辰:f(4,6) = 4 + (4-1)/(6-1) = 4+0=4(整数除法,3/5=0)。

第四步:取三个时辰的最大值,得到最终谜底

代码司帐算三个关键时辰,最大值便是粗糙通盘步地的最少总时辰:

1. 第一架无东说念主机颓落墟间:5;

2. 第二架无东说念主机颓落墟间:1;

3. 两架无东说念主机联结总任务时辰:4;

4. 最大值max(5,1,4)=5,与题目输出一致。

第五步:考据时辰安排(匹配题目诠释)

最终时辰5小时,完满适合通盘步地:

• 第1小时:无东说念主机1送货;

• 第2小时:无东说念主机2送货(无东说念主机1充电);

• 第3小时:无东说念主机1送货(无东说念主机2充电);

• 第4小时:无东说念主机1充电;

• 第5小时:无东说念主机1送货;

完成3+1=4次送货,无时辰打破,无违纪充电。

时辰复杂度与特等空间复杂度分析

1. 时辰复杂度

• 中枢操作:gcd(欧几里得算法)、lcm、三次公式贪图、取最大值;

• 欧几里得算法的时辰复杂度为O(log(min(a,b))),是对数级极小支拨;

• 其余操作齐是O(1) 常数时辰;

• 总时辰复杂度:O(log(min(r1, r2))),可相似看作O(1)。

2. 特等空间复杂度

• 代码仅使用了固定数目的变量(d1,d2,r1,r2,lcm等),大量组、切片、动态内存分拨;

• 特等空间不随输入数据边界变化;

• 总和外空间复杂度:O(1)。

回归

1. 解题中枢:先算单架无东说念主机颓落墟间,再算群众充电周期下的联结时辰,最终取最大值;

2. 时辰复杂度:O(log(min(r1,r2)))(相似常数级);

3. 特等空间复杂度:O(1)(常数级)。

Go完整代码如下:

package main

import (

"fmt"

)

func f(d, r int)int {

return d + (d-1)/(r-1)

}

func minimumTime(d, r []int)int64 {

d1, d2 := d[0], d[1]

r1, r2 := r[0], r[1]

l := lcm(r1, r2)

returnint64(max(f(d1, r1), f(d2, r2), f(d1+d2, l)))

}

func gcd(a, b int)int {

for a != 0 {

a, b = b%a, a

}

return b

}

func lcm(a, b int)int {

return a / gcd(a, b) * b

}

func main {

d := []int{3, 1}

r := []int{2, 3}

result := minimumTime(d, r)

fmt.Println(result)

}

Python完整代码如下:

# -*-coding:utf-8-*-

import math

def f(d: int, r: int) -> int:

"""贪图单架无东说念主机在给定充电周期下完成 d 次送货所需的最小小时数"""

return d + (d - 1) // (r - 1)

def lcm(a: int, b: int) -> int:

"""贪图最小公倍数"""

return a // math.gcd(a, b) * b

def minimum_time(d: list, r: list) -> int:

"""

贪图两架无东说念主机完成通盘送货所需的最小总时辰

Args:

d: 送货次数数组 [d1, d2]

r: 充电周期数组 [r1, r2]

Returns:

最小总时辰(小时数)

"""

d1, d2 = d[0], d[1]

r1, r2 = r[0], r[1]

# 贪图充电周期的最小公倍数

l = lcm(r1, r2)

# 取三种决策的最大值

# 1. 第一架无东说念主机单独完成所需时辰

# 2. 第二架无东说念主机单独完成所需时辰

# 3. 两架无东说念主机以 l 为周期协同使命完成通盘任务所需时辰

return max(f(d1, r1), f(d2, r2), f(d1 + d2, l))

def main:

d = [3, 1]

r = [2, 3]

result = minimum_time(d, r)

print(result)

if __name__ == "__main__":

main

C++完整代码如下:

#include

#include

#include

using namespace std;

int f(int d, int r) {

// 贪图单架无东说念主机在给定充电周期下完成 d 次送货所需的最小小时数

return d + (d - 1) / (r - 1);

}

int gcd(int a, int b) {

// 贪图最大契约数

while (a != 0) {

int temp = a;

b = temp;

}

return b;

}

int lcm(int a, int b) {

// 贪图最小公倍数

return a / gcd(a, b) * b;

}

long long minimumTime(vector& d, vector& r) {

int d1 = d[0], d2 = d[1];

int r1 = r[0], r2 = r[1];

// 贪图充电周期的最小公倍数

int l = lcm(r1, r2);

// 取三种决策的最大值

// 1. 第一架无东说念主机单独完成所需时辰

// 2. 第二架无东说念主机单独完成所需时辰

// 3. 两架无东说念主机以 l 为周期协同使命完成通盘任务所需时辰

return max({f(d1, r1), f(d2, r2), f(d1 + d2, l)});

}

int main {

vector d = {3, 1};

vector r = {2, 3};

long long result = minimumTime(d, r);

cout

return0;

}

咱们笃信东说念主工智能为世俗东说念主提供了一种“增强器具”,并辛勤于于共享全主意的AI学问。在这里,您不错找到最新的AI科普著述、器具评测、培植后果的诡秘以及行业洞悉。

接待柔和“福大大架构师逐日一题”,发音书可赢得口试费事天博体育,让AI助力您的改日发展。

米兰app官方网站

热点资讯

天博体育官方网站 这位日本cos女神一笑,次元壁齐被甜碎了!

在漫展的闪光灯下,你可能会碰见这么一个女孩——她cos的变装像是获胜从动漫里跳出来的,但比纸片东说念主更多了三分灵动。这便是上田亜夢,一个用笑貌冲破次元壁的魔法青娥。 算作日本孤立艺东说念主,她的平淡便是在写照、动漫和cosplay之间解放切换。上昼可能依然校园写照里的清纯学妹,下昼就酿成了来往系动漫里的酷炫女主。最绝的是她那种"一秒入戏"的智商,戴上金色假发便是傲娇公主,换上忍者装又能变身暗夜杀手。 有东说念主说她是"行走的二次元进口"。如实,看她cos的变装,总让东说念主朦拢以为漫画变装确...

推荐资讯