http://get-that-job-at-google.blogspot.in/から次の記事を借りました
コーディング知識 C / C ++およびJavaは、Googleインタビュアーに推奨されるプログラミング言語です。少なくとも1つは本当によく知っている必要があります。電話スクリーンインタビューとオンサイトインタビューでもコードを書くことが期待されます。
CSインタビューの推奨書籍:アルゴリズムの紹介-Cormen作成
番組インタビューの公開
コーディングインタビューの解読
面接のアルゴリズム
コーディング実践のための推奨ウェブサイト:InterviewStreet、Topcoder
Big-Oこれは、アルゴリズムインタビューの準備の出発点となるはずです。雇用されないことを保証するため、基本的な複雑さの分析に苦労してはいけません。O、Θ、およびΩの表記をよく理解している必要があります。データ構造とアルゴリズムの本から複雑性分析のセクションを読むことをお勧めします。
ソート QuickSortやMergeSortなどのアルゴリズムO(n * lgn)を簡単に作成できるはずです。最高、最悪、平均のケースの複雑さを比較して理解します。wikiのこの表は非常に便利であることがわかりました。すべてのソートアルゴリズムの重要なプロパティをリストします。バブルソートや挿入ソートなどの基本的なO(n ^ 2)アルゴリズムを無視しないでください。他のアルゴリズムがこれらを改善するからです。インタビューは基本的な考え方を改善することに関するものであり、ソートプロセスはこのプロセスに役立ちます。
ハッシュテーブル疑問がある場合は、ハッシュテーブルについて考えてください。それらはほとんどの問題で役立ち、結果をキャッシュすることで一部の問題の時間の複雑さを改善するのにしばしば役立ちます。
ツリー基本的なツリー構築、トラバーサル、および操作アルゴリズムを実行します。バイナリ検索ツリーに基づいたアルゴリズムを実装できるはずです。インタビューではバランスの取れたツリーに精通している必要がありますが、インタビューではAVLツリー、赤黒ツリー、トライ、n進ツリーなどのコードを書くことは想定されていません。これらのトラバーサルの1つに簡単な変更を加えることで、多くのツリーの問題を解決できます。
グラフ
グラフは、コンピューターサイエンスの非常に重要な概念です。グラフの3つの基本的な表現(オブジェクトとポインター、マトリックス、隣接リスト)を練習し、それらの長所と短所を理解します。インタビュー中はあまり時間がないので、非常に複雑なことを期待しないでください。ただし、基本的なグラフトラバーサルアルゴリズム(DFSおよびBFS)は必須であり、すべての基本的な表現で実装する必要があります。DijkstraまたはFloyd-Warshallアルゴリズムと最小スパニングツリーアルゴリズム(KruskalおよびPrim)を実装できる必要があります。トポロジカルソートについて学習します。これは、多くの順序付けの問題で驚くほど非常に役立つためです。
動的プログラミングこれは、実装が小さいため、おそらく最も重要な主題です。35〜40分の間に2〜3個の動的アルゴリズムを実装できるはずです。このブログまたはWebでリソースを確認すると、インタビューごとに少なくとも1つの動的プログラミングの質問が予想されるはずです。
オペレーティングシステムプロセス、スレッド、および同時実行の問題について学習します。ミューテックス、セマフォ、モニター、およびそれらの機能について理解します。デッドロックとライブロックとは何か、それらを回避する方法を理解する。コンテキストの切り替え、スケジューリングなどについて学びます。
数学数え方、組み合わせ論、確率に慣れる必要があります。
Googleの出版物時間があれば、下記のGoogleの革新的な出版物をお読みください。Googleファイルシステム
Google Bigtable
Google MapReduce