Java実装は、335のクロスパスをLeetCode

335パスクロス

X所与nは正の数を含むアレイ。点(0,0)から、最初の移動北方X [0] M、その後西X [1] M、南X [2] M、移動東X [3] M、連続的な動きを動かしました。言い換えれば、各移動後に反時計回りの位置が変更されます。

スペースのO(1)トリップスキャンアルゴリズムの複雑さを書き込み、交差を通して、あなたのパスを決定します。

例1:

┌───┐
│   │
└───┼──>

入力:[2,1,1,2]
出力:真の
例2:

┌──────┐
│      │
│
│
└────────────>

入力:[1,2,3,4]
出力:偽
例3:

┌───┐
│   │
└───┼>

入力:[1,1,1,1]
出力:真

class Solution {
      public boolean isSelfCrossing(int[] x) {
        for (int i = 3; i < x.length; ++i) {
            if (x[i] >= x[i - 2] && x[i - 3] >= x[i - 1]) {
                return true;
            }
            if (i >= 4 && x[i-1] == x[i-3] && x[i] >= x[i-2] - x[i-4]) {
                return true;
            }
            if (i >= 5 && x[i-2] >= x[i-4] && x[i-3] >= x[i-1] && x[i-1] >= x[i-3] - x[i-5] && x[i] >= x[i-2] - x[i-4]) {
                return true;
            }
        }
        return false;
    }
}
リリース1447元の記事 ウォンの賞賛10000 + ビュー167万+

おすすめ

転載: blog.csdn.net/a1439775520/article/details/104720529