RSS DEV コミュニティ

サブルーチン:面接問題調査

このテキストは、様々なアルゴリズムとその異なる問題解決への応用について論じています。まず、様々な問題のサブルーチンとして使用できる回文チェックアルゴリズムから始まります。このアルゴリズムは、文字列の先頭と末尾の文字を比較することで、文字列が回文であるかどうかをチェックします。アルゴリズムの汎用性を高めるために、最大で1文字を削除できるケースを処理する追加パラメータを追加できます。これはLeetCodeの問題680の解決策で示されています。 次に、テキストは深さ優先探索(DFS)と幅優先探索(BFS)アルゴリズムに移ります。これらは面接問題で一般的に使用されます。DFSの問題の例としては、'1'が陸地、'0'が水を表す行列における島の数または最大の島を見つけることが挙げられます。この解決策では、DFSを使用して行列を走査し、島の数または最大の島のサイズをカウントします。 DFSの問題のもう1つの例として、数字の文字列に二項演算子を追加することで、特定の数字に評価されるすべての式を見つけることが挙げられます。これはLeetCodeの問題282の解決策で示されています。この解決策では、DFSを使用してすべての可能な式を生成し、それらが目標の数字に評価されるかどうかをチェックします。このアルゴリズムは再帰を使用してすべての可能な式を探索し、バックトラッキングを使用して解決策に繋がらない枝を刈り込みます。
favicon
dev.to
Subroutines: Interview Problem Survey