gpt4 book ai didi

php - 如何从需要燃料的汽车阵列中获得最长的等待时间

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:46 24 4
gpt4 key购买 nike

我有一个汽车数组 $cars=array(2,8,4,3,2),其中数组中的值显示汽车所需的燃料。并且有三个加油站说 $x、$y 和 $z。每个加油站的燃料容量有限。假设 $x=7、$y=11、$z=3。所以当阵列中的每辆车移动到加油站时,它需要检查是否有足够的燃料来填充,如果没有那么汽车必须等到另一辆车完成加油然后只有下一辆车可以移动到加油站。加满油箱所需的时间为每加仑 1 秒。那么如何获得上述数组的最大填充时间。到目前为止,我已经做到了这一点

$cars=array(2,8,4,3,2);
$x=7; $y=11; $z=3;

echo maxwaittime($cars, $x, $y, $z);

function maxwaittime($cars, $x, $y, $z){
$car1=0;
$car2=0;
$car3=0;

$maximumtime=0;
$i=0;
while($i < count($cars)){
if($car1 !=0 && $car2 !=0 && $car3 !=0){
if($car1 < $car2){
$mintime=$car1;
}else{
$mintime=$car2;
}

if($mintime > $car3){
$mintime=$car3;
}

$car1=$car1-$mintime;
$car2=$car2-$mintime;
$car3=$car3-$mintime;

$x=$x-$mintime;
$y=$y-$mintime;
$z=$z-$mintime;

if($mintime > $maximumtime){
$maximumtime=$mintime;
}
}

if($car1==0){
if($cars[$i] <= $x){
$car1=$cars[$i++];
continue;
}else{
return -1;
}
}else if($car2==0){
if($cars[$i] <=$y){
$car2=$cars[$i++];
continue;
}else{
return -1
}
}else if($car3==0){
if($cars[$i] <=$z){
$car3=$cars[$i++];
continue;
}else{
return -1
}
}
}
return $maximumtime;
}

这里的问题是在第三辆车的迭代中,它需要 4 加仑的燃料,而加油站 z 只有 3 加仑可用,汽车应该等待 2 秒,并在它空闲后从站 x 获取燃料。但我的代码返回-1。如果没有任何加油站需要加油,它应该只返回 -1。

事实上,在上述情况下,它应该返回 8,因为它是最大等待时间,分别为 0、0、2、2 和 8 秒。

最佳答案

            $car1=0;
$car2=0;
$car3=0;

$maximumtime=0;
$i=0;
while($i < count($cars)){
/*$car1 = 0 $car2=0 $car3 = 0 => false*/ if($car1 !=0 && $car2 !=0 && $car3 !=0){
if($car1 < $car2){
$mintime=$car1;
}else{
$mintime=$car2;
}

if($mintime > $car3){
$mintime=$car3;
}

$car1=$car1-$mintime;
$car2=$car2-$mintime;
$car3=$car3-$mintime;

$x=$x-$mintime;
$y=$y-$mintime;
$z=$z-$mintime;

if($mintime > $maximumtime){
$maximumtime=$mintime;
}
}
if($car1==0){
if($cars[$i] <= $x){
$car1=$cars[$i++];
continue;
}else{
return -1;
}
}else if($car2==0){
if($cars[$i] <=$y){
$car2=$cars[$i++];
continue;
}else{
return -1;
}
/*/*$car3=0 => true*/*/
}else if($car3==0){
/*$i=2 => $cars[2]= 4 $z = 3 => FALSE => return -1*/
if($cars[$i] <=$z){
$car3=$cars[$i++];
continue;
}else{
return -1;
}
}
}
return $maximumtime;
}

关于php - 如何从需要燃料的汽车阵列中获得最长的等待时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54190772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com