5
線分の移動に関するインタビューパズル
長さの数直線上のM、0 < M <= 1,000,000,000指定した、N(1 < N <= 100,000点の対の整数)。各ペアで、最初のポイントはオブジェクトが現在配置されている場所を表し、2番目のポイントはオブジェクトを移動する必要がある場所を表します。(覚えておいてくださいsecondポイントがかもしれ小さいよりfirst)。 ここで、その時点0から始めて、1オブジェクトを保持できるカートがあるとします。すべてのオブジェクトを最初の位置からそれぞれの最終位置に移動し、数直線に沿って(変位ではなく)最短距離を移動したいとします。あなたはポイントで終わる必要がありMます。 今、私はこの問題をより簡単な問題に削減しようとしています。正直なところ、私は力ずくの(おそらく貪欲な)解決策を考えることすらできません。しかし、私の最初の考えは、後方への動きを2つの前方への動きに縮退させることでしたが、それがすべての場合に機能するとは思われません。 私はこれらの3サンプルテストケースをここに引き出しました: 最初のテストケースへの答えは12です。まず、redポイントでアイテムを受け取ります0。次に、ポイント6(距離= 6)に移動し、redアイテムを一時的にドロップして、アイテムを拾いgreenます。次に、ポイント5(距離= 1)に移動してgreenアイテムをドロップします。次に、ポイント6(距離= 1)に戻ってredドロップしたアイテムを拾い、ポイント9(距離= 3)に移動してから、ポイント10(距離= 1)に移動してシーケンスを終了します。 移動した総距離はでした6 + 1 + 1 + 3 + 1 = 12。これは可能な最小距離です。 他の2つのケースにはの答えがある12と思います。しかし、私はそれを解決するための一般的なルールを見つけることができません。 誰かアイデアはありますか?
10
algorithms
math