探索アルゴリズムと分散データ構造の実装指南
二分探索法の基本ロジック
要素が昇順に整列された配列に対し、目的のキーが含まれるインデックスを対数時間で特定する関数です。境界値の更新順序と終了条件の設計が正しさの鍵となります。
参考実行枠組み
#include <stdio.h>
#include <stdlib.h>
#define MAX_CAPACITY 10
#define SEARCH_FAILED 0
typedef int ValueT;
typedef int IndexT;
typedef st ...
8月2日 14:32 投稿
フラッドフィルアルゴリズムによる領域の囲い込みと最長連続シーケンス探索
問題1: フラッドフィルを用いた領域の囲い込み
二次元グリッドが与えられ、各セルは'X'または'O'で構成されます。境界に接続されていない'O'の領域を特定し、それらを'X'に変換する必要があります。境界に隣接する'O'は変換せずに保持します。
アプローチ: 深さ優先探索(DFS)を活用し、境界上の'O'から接続された領域を一時マークで識別します。その後、マークされていない ...
7月28日 16:43 投稿
データ構造とアルゴリズム - ハッシュテーブル
1. ハッシュテーブルの基本概念
順序リストや木構造では、データ要素を検索する際にキーの比較を繰り返す必要があります。比較回数を減らすためには、データ要素の格納位置とキーの値の間に関連性を確立する必要があります。この目的のために、ハッシュ技術を用いた動的検索表が使用されます。まず、いくつかの基本概念を理解しましょう。
ハッシュ関数:データ要素のキー ...
7月8日 23:35 投稿
C++プログラミングの重要な注意点とベストプラクティス
1. イテレータとペアの値へのアクセス方法の違い
イテレータを介して値にアクセスする場合と、ループ内で直接ペアオブジェクトにアクセスする場合で、ドット演算子とアロー演算子の使い分けが必要です。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
std::unordered_map hash_map;
for(int i = 0; i < ...
5月16日 00:32 投稿