2025年3月

[Leetcode] 1804. Trie II を実装する

トライ (「トライ」と発音) またはプレフィックス ツリーは、文字列のデータセット内のキーを効率的に保存および取得するために使用されるツリー データ構造です。このデータ構造には、オートコンプリートやスペルチェッカーなど、さまざまな用途があります。

Trie クラスを実装します。

Trie() トライオブジェクトを初期化します。
void insert(String word) 文字列 word をトライに挿入します。
int countWordsEqualTo(String word) トライ内の文字列 word のインスタンスの数を返します。
int countWordsStartingWith(String prefix) 文字列プレフィックスをプレフィックスとして持つトライ内の文字列の数を返します。
void erasing(String word) トライから文字列 word を消去します。

[Leetcode] 1804. Trie II を実装する 続きを読む

リートコード, テクニカル記事

[LeetCode] 0020. 有効な括弧

'('、')'、'{'、'}'、'['、']' の文字のみを含む文字列が与えられた場合、入力文字列が有効かどうかを判断します。

入力文字列は次の場合に有効です。

開いた括弧は同じ種類の括弧で閉じる必要があります。
開いた括弧は正しい順序で閉じる必要があります。
すべての閉じ括弧には、同じタイプの対応する開き括弧があります。

[LeetCode] 0020. 有効な括弧 続きを読む

リートコード, テクニカル記事
AI があなたよりも速くプログラムを作成できる場合、エンジニアはどのようにして新しいポジションを見つけることができるでしょうか?

AI があなたよりも速くプログラムを作成できる場合、エンジニアはどのようにして新しいポジションを見つけることができるでしょうか?

次のシナリオを想像してください。コンピューターの前に座り、頭の中にある機能を説明します。数秒後には、人工知能が実行可能なコードを生成したり、アプリケーション全体が誕生したりします。ちょっと魔法みたいに聞こえますか?
このシナリオはもはや空想ではなく、今起こっている現実です。近年、AIコーディング技術は急速に発展し、テクノロジーニュースにおける目新しい話題から日常の開発作業における重要なツールへと徐々に変化しています。 GitHub Copilot から DeepSeek R1 まで、人工知能はプログラミングの方法を変えただけでなく、ソフトウェア業界全体の開発の方向性を覆す可能性もあります。
では、AIコーディング技術はどの程度まで発展したのでしょうか?エンジニアの仕事が置き換えられるのでしょうか?テクノロジー業界で働く者として、私たちはこの技術進歩の波にどのように向き合うべきでしょうか?この記事では、AI コーディングの起源、現状、実用化、業界への影響、将来の発展、テクノロジー業界の専門家が AI コーディングにどのように対応すべきかを段階的に詳しく分析します。

AI があなたよりも速くプログラムを作成できる場合、エンジニアはどのようにして新しいポジションを見つけることができるでしょうか? 続きを読む

ソフトウェアエンジニア,

[リートコード] 0212. ワードサーチ II

mxn の文字のボードと単語の文字列のリストが与えられた場合、ボード上のすべての単語を返します。

各単語は、水平または垂直に隣接するセルの文字から構成する必要があります。 同じ文字セルを 1 つの単語内で複数回使用することはできません。

[リートコード] 0212. ワードサーチ II 続きを読む

リートコード, テクニカル記事

[Leetcode] 0211. 単語の追加と検索のデータ構造の設計

新しい単語の追加と、文字列が以前に追加された文字列と一致するかどうかの検索をサポートするデータ構造を設計します。

WordDictionary クラスを実装します。

WordDictionary() オブジェクトを初期化します。
void addWord(word) データ構造に単語を追加します。これは後で照合できます。
bool search(word) データ構造内に word に一致する文字列がある場合は true を返し、それ以外の場合は false を返します。単語にはドット「.」が含まれる場合があります。ドットは任意の文字と一致できます。

[Leetcode] 0211. 単語の追加と検索のデータ構造の設計 続きを読む

リートコード, テクニカル記事

[Leetcode] 0208. Trie を実装する

トライ (「トライ」と発音) またはプレフィックス ツリーは、文字列のデータセット内のキーを効率的に保存および取得するために使用されるツリー データ構造です。このデータ構造には、オートコンプリートやスペルチェッカーなど、さまざまな用途があります。

Trie クラスを実装します。

Trie() トライオブジェクトを初期化します。
void insert(String word) 文字列 word をトライに挿入します。
boolean search(String word) 文字列 word がトライ内にある場合 (つまり、以前に挿入されていた場合) は true を返し、それ以外の場合は false を返します。
boolean startsWith(String prefix) 接頭辞 prefix を持つ以前に挿入された文字列単語がある場合は true を返し、それ以外の場合は false を返します。

[Leetcode] 0208. Trie を実装する 続きを読む

リートコード, テクニカル記事

[Leetcode] 0235. 二分探索木の最小共通祖先

バイナリ検索ツリー (BST) が与えられた場合、BST 内の 2 つの指定されたノードの最下位共通祖先 (LCA) ノードを検索します。

Wikipedia の LCA の定義によると、「最低共通祖先は、2 つのノード p と q の間で、p と q の両方を子孫として持つ T 内の最低のノードとして定義されます (ノードがそれ自身の子孫になることを許可します)。」

[Leetcode] 0235. 二分探索木の最小共通祖先 続きを読む

リートコード, テクニカル記事

[Leetcode] 0098. 二分探索木の検証

バイナリ ツリーのルートが与えられた場合、それが有効なバイナリ サーチ ツリー (BST) であるかどうかを判断します。

有効な BST は次のように定義されます。

ノードの左のサブツリーには、ノードのキーよりも小さいキーを持つノードのみが含まれます。
ノードの右サブツリーには、ノードのキーよりも大きいキーを持つノードのみが含まれます。
左と右のサブツリーも両方ともバイナリ検索ツリーである必要があります。

[Leetcode] 0098. 二分探索木の検証 続きを読む

リートコード, テクニカル記事

[Leetcode] 0105. 先行順序と中順序の走査から二分木を構築する

2 つの整数配列 preorder と inorder が指定されます。ここで、preorder はバイナリ ツリーの先行順序トラバーサルであり、inorder は同じツリーのインオーダー トラバーサルです。バイナリ ツリーを構築して返します。

[Leetcode] 0105. 先行順序と中順序の走査から二分木を構築する 続きを読む

リートコード, テクニカル記事
ja日本語