西安Shangxue唐行使09.03 | Javaプログラミング書かれたインタビューの質問

  1. 2.5億整数整数、ない2.5億整数を収容するのに十分なメモリのない繰り返しを検索しません。
    スキーム1:2ビットマップ(各2ビット配分、00 10 11無意味、複数回を表し、1 01を意味し、存在しないことを示している)ため、RAMメモリ合計は、それはまた、許容可能です。次いで2.5億整数をスキャン、01 10、10、00は変更されないままとなり、それが01になった場合にビットマップのビットに対応する参照。説明したように行ったときに、ビットマップを参照し、対応するビットが出力する01の整数です。
    スキーム2:同様の問題は、この方法、小さいファイルを分割する方法を採用することができます。そして、小さなファイルとソートに繰り返さない整数を見つけます。その後、重複要素を削除し、注意をマージします。
  2. 大量のデータは、これらのデータTOP10方法を見つけるために100台のコンピュータ、大学の統計に分散します。
    TOP10は、スタックが(最小ヒープと、最大ヒープ、TOP10が大きいと、TOP10が小さい)10個の要素を完了するために使用することができ、各コンピュータ上で決定しました。大TOPlOを求めている例では、最初に見つかった場合、最小ヒープに調整される最初の10個の要素を取り、その後、スキャンデータの裏、およびスタック要素のトップに比べて、もしスタック要素の上面、次いでこの要素置換スタックの最上部、およびより大きい最小ヒープを調整します。最後の要素はTOP10大きなヒープです。
    TOP10は、各コンピュータ上で決定され、次いで100台のコンピュータTOP10の組み合わせ、1000個のデータの合計に置いた後、次いで、上記のプロセスは、同様のTOP10、それを用いて得られます。
  3. 最も大規模なデータの一つに繰り返し回数を見つけるにはどのように?
    ハッシュが最初にやるし、次にモジュロ小さなファイルにマッピングされ、各ファイルを個別に繰り返し回数までに決定し、繰り返し回数を記録します。その後、前のステップで得られたデータを検索する回数は(そのタイトルのIPを特に参照して)最も需要で繰り返されます。
  4. 数千万または統計お金Nデータの最大数が表示されているデータ(複製)の何百万、数百人。
    データの何百万あるいは数百億、今のマシンのメモリが十分に節約することができるはずです。だから、数をカウントするhash_map /バイナリサーチ/赤黒木を考えます。次いで、第二のスタック機構が問題に言及することによりNが完了したと思われた除去前のデータの最大数です。
  5. 繰り返され、その一部千万文字列、すべての削除を繰り返す必要は、まったく重複している文字列を保持していません。設計および実装する方法をしてください?
    適切なトライを使用して、この問題は、hash_mapはそれを行う必要があります。
  6. テキストファイル、およそ1万行、1行につき1つの単語は、トップ10の最も頻繁に出現する単語の統計を必要とする、時間複雑分析与え、思考を与えてください。
    この質問は、時間効率を考慮することです。各ワードはトライで出現する回数をカウント、時間複雑度は、O(N-あるLE)(ワード長を表すル安定化)。その後の話された問題の前でヒープを達成するために使用することができ、トップ10の最も頻度の高い単語を見つける、時間計算量はO(N-ある LG10)。そう合計時間の複雑さは、(N OであるLE)(とN-O大型のLG10)。

おすすめ

転載: blog.51cto.com/14512197/2435131