1 条题解

  • 0
    @ 2026-9-9 8:56:15

    题解

    思路

    两人在完成各自往返的过程中必须相互经过两次:一次两人的相对方向对应西侧行程,另一次对应东侧行程。

    做法

    设这两次相遇的休息站到西端、东端的距离分别为 ll 与 rr,则两人各自走完道路两端所需的基础时间为 2L2L;两段时序的差为 2∣l−r∣2|l-r|,必须通过等待或减速补齐,而且可以只在其中一个相遇站等待,恰好达到这个下界。因此答案是 2L+2min⁡∣l−r∣2L+2\min|l-r|。

    若西侧相遇站位置为 aia_i,东侧相遇站位置为 aja_j,则 l=ail=a_i、r=L−ajr=L-a_j,需要最小化 ∣ai+aj−L∣|a_i+a_j-L|,其中两站允许相同。数组已经递增,可以令左指针从最小位置开始、右指针从最大位置开始:和小于 LL 时增大左指针,否则减小右指针,并更新最小绝对差。

    复杂度

    时间复杂度为 O(N)O(N),额外空间复杂度为 O(1)O(1)。

    • 1

    信息

    ID
    1540
    时间
    2000ms
    内存
    1024MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者