新井康平

コーディング面接対策のために解きたいLeetCode 60問

自分がコーディング面接対策のために解いてよかったLeetCodeの問題をコンセプトごとにまとめました。カバーするコンセプトは

  • LinkedList
  • Stack
  • Heap, PriorityQueue
  • HashMap
  • Graph, BFS, DFS
  • Tree, BT, BST
  • Sort
  • Dynamic Programming
  • Binary search
  • Recursion
  • Sliding window
  • Greedy + Backtracking

です。 これらの問題が30分以内に実装できれば面接の準備は整ったと言っていいと思います。EasyとMediumで問題は構成されてます。進捗を管理するためにGoogle Spreadsheetを用意しました。コピペしてご自由にお使いください。

これらの問題は、LeetCodeのリスト機能でも公開されています。クローンすれば自分がすでにどの問題を解いているかがわかります。

LinkedList

Stack

Heap, PriorityQueue

HashMap

Graph, BFS, DFS

Tree, BT, BST

Sort

Sorting Algorithms Animationsが参考になります。挿入ソートや基数ソートがどういうデータセットのときに、NLogNのソートと比べて優れているかを確認しましょう。それぞれのアルゴリズムの特徴を把握するとよいです。

Dynamic Programming

Binary Search

Recursion

Sliding Window

Greedy + Backtracking

その他

これらの問題は総合的に考えて実装する問題です。

まとめ

いかがだったでしょうか?これらの問題がすばやく解けるようになったら、@yangshunによるAlgorithm Questionsもやってみるといいです。この記事と同じように、コンセプトごとにLeetCodeの問題やコーナーケースがまとめられています。

Algorithm Questionもやりつくしてしまったら、友人が書いてるAlgorithms and Coding Interviewsをおすすめします。分野ごとに説明/コードが記載されており、この記事もこの本を参考にしています。

競技プログラミングなどをやったことない人にとって、これらの問題は馴染みがないかもしれません。ですが、準備をすればコーディング面接は確実に突破できます。筆者は200問ほど解き、Googleからオファーをもらいました。

実際の面接対策にはPrampがおすすめです。これは、コーディング面接の準備をしている人同士をマッチングさせるプラットフォームです。英語でしか使えないことに注意してください。オンサイト面接の経験を積みたければ、TripleByteをおすすめしています。アメリカでOPTが2年間できるという制約がありますが、オンサイト面接に慣れます。

シェアボタン


Kohei Arai
シリコンバレーで働くエンジニア。
17で渡米。アメリカの大学でコンピュータサイエンス学士を取得。
Twitterは@koheiarai94