計算量はコーディング面接では必須の内容になっています。コーディング面接では主に時間計算量(Time Complexity)と空間計算量(Space Complexity)の両方が注目されます。自分が考え出したアルゴリズムをこの2つの側面から解説する必要があるからです。
またコーディング面接では複数の解法を求められる事があります。その場合、通常、それぞれの解法の時間計算量と空間計算量を比較し、各解法の長所と短所(トレードオフ)を説明する必要があります。具体的には、同じ問題を解くための異なるアルゴリズムがあり、一方は時間計算量が少ないが空間計算量が多く、他方はその逆であるというような場合、どのアルゴリズムを選ぶべきかについての面接官と議論を行うわけです。コーディング面接では常にこれを頭に置いて解法を考えましょう。
また、常に最良の計算量が良いというわけではありません。コーディング面接での要件次第では実装が簡単で分かりやすいものを選ぶ事もあります。しっかりと面接官とコミュニケーションを行い、合意が取れた後に実装していきましょう。
計算量とは
同じ問題を解決するアルゴリズムはいくつも存在しますが、各アルゴリズムを選択する上での何がよいかの基準が必要です。計算量は、アルゴリズムが解を見つけるのに必要なリソース(時間やメモリ)を数学的に分析したものです。アルゴリズムの効率は、それが解決すべき問題のサイズにどのように依存するかを示すことで定量化されます。計算量では主に二つの種類の計算量を考慮します。それは時間計算量(Time Complexity)と空間計算量(Space Complexity)です。