STL応用問題集
問題出典 : Nowcoder
スタックとソート (nowcoder.com)
問題の解析
各要素の挿入に対して二つの動作が可能である
スタックに挿入
直接出力(挿入後に即座に削除)
この二つの動作をどう選択するか?
問題の要件:出力されるシーケンスは降順に並べる(ソート不可能な場合は辞書式で大きいものに近づける)
最大値が最初にスタックから取り出されるのが最適
最大値であ ...
8月8日 11:29 投稿
LeetCode 57: ソート済み区間リストへの新規追加と統合処理
課題の概要
互いに重複しない(overlapping な)区間のセットが、開始時間に基づいて昇順にソートされた状態で与えられます。このセットに対して、指定された新しい区間を挿入し、必要に応じて既存の区間と統合(マージ)して返すことが求められます。
結果も同様に重複せず、開始時間でソートされている状態である必要があります。
思考プロセス
この問題を解決する鍵は ...
8月6日 10:00 投稿
C言語による拡張可能な多目並べアルゴリズムの実装
本記事では、C言語を用いて盤面のサイズや勝利条件(連続する石の数)を柔軟に変更可能な多目並べ(三目並べの拡張版)の実装例を紹介します。ヘッダーファイルの定数マクロを修正するだけで、標準的な3x3の三目並べから、大きな盤面を使った五目並べなど、様々なルールに即座に対応できる設計となっています。
以下に、設定用ヘッダーファイル、ゲームロジックの実装フ ...
8月4日 22:22 投稿
栈データ構造を用いた文字列の検証と数式評価の実装
LeetCode 20. 有効な括弧 (Valid Parentheses)
スタック(Stack)はLIFO(後入れ先出し)の特性を持つため、括弧の対称性チェックのようなネスト構造の検証に適しています。実装の際は、不一致が発生するすべてのエッジケースを事前に分析することが重要です。
アルゴリズムのアプローチとして、左括弧が現れた際に、対応する「期待される右括弧」をスタックにプッシュする ...
8月3日 23:58 投稿
企業推薦の最適化アルゴリズム
プログラミングコンテスト終了後、企業の採用担当は成績優秀者を推薦する必要がある。推薦条件は以下の通り:
コンテスト得点が175点以上であること
最大K回の推薦ラウンドが可能
各ラウンドでは得点が厳密に増加する順序で推薦
PAT試験の合格者(スコアが基準以上)は同点でも推薦可
入力形式
最初の行には3つの整数N(≤10⁵)、K(≤5×10³)、S(≤100)が与えられる。続 ...
7月31日 17:31 投稿
スライディングウィンドウ(Sliding Window)アルゴリズムのパターンと実装まとめ
非固定長スライディングウィンドウのテンプレート
public int variableWindow(int[] nums) {
Map<Integer, Integer> state = new HashMap<>(); // 適切なデータ構造を選択
int start = 0;
int maxLen = 0;
for (int end = 0; end < nums.length; end++) {
// ウィンドウを拡大
// nums[end] を state に O(1) で追加
...
7月26日 16:34 投稿
Codeforces ラウンド 996 (Div. 2) 問題解説
問題 A: 二匹のカエル
問題リンク:https://codeforces.com/contest/2055/problem/0
アプローチ:
アリスが先手で勝つ状況は、位置 a と b の距離が奇数の場合に限られます。
ACコード:
1 #include <bits/stdc++.h>
2 using namespace std;
3
4 void process() {
5 long long n, p, q;
6 cin >> n >> p >> q;
7 if ((abs(p - q) % 2) ...
7月24日 17:10 投稿
7日間でツリー構造アルゴリズムをマスターする:基礎からLeetCode実践まで
ツリー構造のアルゴリズムは、程序员面试和算法学习中的核心内容,掌握树的遍历、深度计算、路径查找等技能对解决复杂问题至关重要。本文将通过7天系统学习计划,帮助你从基础到进阶,全面掌握树结构算法,并结合LeetCode实战案例巩固提升。ツリー構造アルゴリズムを学ぶ意義ツリー構造は、データベースインデックス、ファイルシステム、人工知能などの分野广泛应用されて ...
7月24日 01:33 投稿
Jump Point Search (JPS) アルゴリズム
Jump Point Search (JPS) アルゴリズムは、A* アルゴリズムを改良したもので、大規模な地図での探索効率を向上させます。
A* アルゴリズムは、拡張するノードのすべての隣接ノードを考慮しますが、地図が大きい場合、openList 中のノード数が多くなり、効率が低下します。
JPS アルゴリズムは、直線的なパスの場合、中間ノードを探索に含めません。探索が必要なのは、道 ...
7月21日 19:38 投稿
Codeforces Round 1027 (Div. 3) 問題解説(A〜E)
概要
本稿では、Codeforces Round 1027(Div. 3)の問題AからEまでの解法を示す。
問題A:数値構築
問題内容
4桁の整数cが与えられる。整数a(0以上99以下)とb(0以上99以下)を用いて、(a+b)² = c を成立させられるか判定する。
解法
0から√nまでの範囲で遍历し、平方数になるかを判定すればよい。a+b = √c が成立する必要があり、a=0, b=√c で試すだけで十分である ...
7月19日 20:01 投稿