Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 汽车和交通黑客排名的差距_Java_Linked List - Fatal编程技术网

Java 汽车和交通黑客排名的差距

Java 汽车和交通黑客排名的差距,java,linked-list,Java,Linked List,你能帮我解决最近在一次校外采访中被问到的以下问题吗 问题陈述: 给定一条有n个位置的2车道道路,以及从开始位置到结束位置从左到右行驶的总共m辆车,在不考虑车道的情况下,确定所有车辆位置的最大间隙 例如: n=10 开始=[1,2,5,8] 完成=[2,2,6,10] 上面描述的道路长度为n=10个单位,车辆数为m=4辆: 1.第一节车厢从位置开始[0]=1跨越到位置结束[0]=2 2.第二节车厢从位置开始[1]=2跨越到位置结束[1]=2 3.第三节车厢从位置开始[2]=5到位置结束[1]=6

你能帮我解决最近在一次校外采访中被问到的以下问题吗

问题陈述: 给定一条有n个位置的2车道道路,以及从开始位置到结束位置从左到右行驶的总共m辆车,在不考虑车道的情况下,确定所有车辆位置的最大间隙

例如:

n=10

开始=[1,2,5,8]

完成=[2,2,6,10]

上面描述的道路长度为n=10个单位,车辆数为m=4辆:

1.第一节车厢从位置开始[0]=1跨越到位置结束[0]=2

2.第二节车厢从位置开始[1]=2跨越到位置结束[1]=2

3.第三节车厢从位置开始[2]=5到位置结束[1]=6

4.第四节车厢从位置开始[3]=8到位置结束[3]=10

5.位置3-4和7处存在间隙。两辆车之间最大的差距是2

功能描述 在下面的编辑器中完成WidtGap函数

WideTGAP具有以下参数: int n:路段的长度 int start[m]:每辆车后部的位置 int finish[m]:每辆车前部的位置

返回 int:车与车之间最大间隙的长度

约束
->1我为此尝试了python解决方案,在某些情况下进行了测试,得到了正确的答案,不能说它是否完全正确

解决方案:

def WidestGap(n, start, finish):
    maxgap = 0
    i = 1
    min_start = 0
    while i < len(start):
        if finish[min_start] > start[i] and start[i] < start[min_start]:
            maxgap = 0
            min_start = i
        elif finish[min_start] < start[i]:
            maxgap = max(maxgap, (start[i] - finish[min_start]) -1)
            min_start = i
        i +=1
    if (n - max(finish)) > maxgap:
        maxgap = n - max(finish)
    if min(start) -1 > maxgap:
        maxgap = min(start) -1
    return maxgap

def宽标(n,开始,结束):
maxgap=0
i=1
最小启动时间=0
当我start[i]和start[i]最大间隙:
最大间隙=n-最大值(光洁度)
如果最小(开始)-1>最大间隙:
最大间隙=最小(启动)-1
返回最大间隙
请让我知道任何失败的测试用例,如果有更好的方法

def largestGap(start,finish,n):
cars = list(zip(start,finish))
cars.sort()
cars.append((n+1,n+1))

max_fin = 0
max_gap = 0
for st,fin in cars:
    if st > max_fin:
        max_gap = max(max_gap, st - max_fin - 1)
    max_fin = max(max_fin,fin)
return max_gap
让我知道是否有任何失败的测试

可以使用暴力方法
brute force approach could be

    traffic = ["*"]*n
    
    positions = list(zip(start,finish))
    
    for s,f in positions:
        for i in range(s-1,f):
           traffic[i]="&"
    count,max_val=0,0
    for i in traffic:
        if i=="&":
           count+=1
        if i=="*":
           if max_val<count:
              max_val=count
           count=0
    print(max_val)
流量=[“*”]*n 位置=列表(压缩(开始、结束)) 对于处于以下位置的s、f: 对于范围(s-1,f)内的i: 交通量[i]=“&” 计数,最大值=0,0 在交通方面: 如果i==“&”: 计数+=1 如果i==“*”:
如果max_Valu你被困在哪里?你对问题的解释给了你一个算法。找到汽车在路上的位置。找出路上所有的空隙。返回最大间距的长度。有效的方法可能是合并两个数组并创建*和&数组。您可以简要解释逻辑,或共享一些参考资料吗
brute force approach could be

    traffic = ["*"]*n
    
    positions = list(zip(start,finish))
    
    for s,f in positions:
        for i in range(s-1,f):
           traffic[i]="&"
    count,max_val=0,0
    for i in traffic:
        if i=="&":
           count+=1
        if i=="*":
           if max_val<count:
              max_val=count
           count=0
    print(max_val)