今日のインタビューでこんな質問をされました。私は解決策を試しましたが、これを解決するためのより良い方法があるかどうか知りたいです:
質問: arraylist の各要素の値がインデックスと同じになるように、500,000 要素の arraylist があります。例: list.get(0) = 0; list.get(1) = 1 ...など。しかし、この順序と同期していない要素は 1 つだけです [つまり、list.get(i) != i]。その要素をどのように見つけますか。
私の答え: list.get(i) と i を比較するたびに、各スレッドが arraylist の特定のスプライスを処理する複数のスレッドを使用して、リストを反復処理します。要素が見つかったら、ブール変数を設定して、要素が見つかったことを他のスレッドに示します。
リストを繰り返し処理せずにこの問題を解決する方法はありますか? それとももっと良い方法ですか?