LeetCode 350: 二つの配列の共通要素(ハッシュマップと双方向ポインタ)
問題概要:350. 二つの配列の交差
与えられた二つの整数配列から、両方に含まれる要素を重複を考慮して返す。各要素の出現回数は、両方の配列で最小となる回数に制限される。
手法1: ハッシュマップによるカウント
一方の配列の要素とその頻度をハッシュマップに保存し、もう一方の配列を走査しながら該当する要素があれば結果リストに追加し、頻度を減算する。
時間計算 ...
9月29日 03:46 投稿
2数和問題の最適解法と3数和への拡張
問題概要
配列内の2つの要素を選択し、その和が指定された値に一致する組み合わせを高速に見つける。配列は少なくとも1組の解を持つことが保証されている。
例:配列 [5, 6, 1, 4, 7, 8, 9]、目標値 10
解法1:全探索(二重ループ)
すべてのペアを試す方法。時間計算量は O(N²) であり、効率が低い。
<pre>
#include <iostream>
using namespace std;
v ...
8月14日 02:39 投稿
C言語:構造体と列挙型を用いたプログラム例
課題1:書籍販売データの処理
以下のプログラムは、書籍の販売データを管理し、販売数でランキングを表示し、総売上額を計算します。
#include <stdio.h>
#define MAX_BOOKS 10
// 書籍情報を格納する構造体
typedef struct {
char ISBN[20]; // ISBNコード
char title[80]; // 書籍タイトル
char author[80]; // 著者名
double pr ...
8月13日 12:49 投稿
組み込みシステムにおけるC言語のアルゴリズム入門
1. 配列の並び替えアルゴリズム
1.1 選択ソート —— 最小値を特定の位置に配置する
各ステップで未ソート部分から最小値(または最大値)を選び、それを対応する位置と交換することで、全体がソートされるまで処理を繰り返す。昇順での例を示す:
#include <stdio.h>
int main() {
int data[] = {4, 8, 7, 6, 2, 5, 3, 9, 1};
int length = sizeof(data) / s ...
8月6日 20:57 投稿
配列の探索とソートアルゴリズム
探索
1. 二分探索
前提条件:配列は事前に昇順にソートされていること
基本概念:目的値と中央要素を比較して探索範囲を半分にする
アルゴリズム手順
初期化処理:
left = 0;
right = 配列長 - 1;
pivot = left + (right - left)/2;
left <= right の間繰り返す
arr[pivot] と target を比較する
target == arr[pivot] → pivot を返却
target > arr[pivot] → le ...
8月1日 16:39 投稿
プログラミングコンテスト問題の解法と分析
患者の並び替え問題
患者が診察を受けに来院し、以下のルールに基づいて診察の順番を決定するプログラムを作成する。
高齢者(年齢が60歳以上)は、若年者より優先される。
高齢者は年齢が高い順に診察され、年齢が同じ場合は来院順に診察される。
若年者は来院順に診察される。
解法のポイント
この問題は、カスタム比較ロジックを使用した構造体のソートをテストするも ...
7月24日 17:51 投稿
JavaScriptでの配列のグループ化処理
JavaScriptの配列グループ化
1. データのグループ化(類似GROUP BY)
以下のコードは、配列の要素を指定されたプロパティに基づいてグループ化します。
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device- ...
7月23日 20:25 投稿
C言語構造体とアルゴリズムの実践的演習
4、演習課題4
task4.cソースコードと実行結果:
1 #include <stdio.h>
2 #define MAX_BOOKS 10
3
4 typedef struct {
5 char book_id[20]; // 書籍ID
6 char title[80]; // タイトル
7 char writer[80]; // 著者
8 double price; // 価格
9 int quantity; // 売上数量
10 } Publication; ...
7月16日 20:01 投稿
配列の基本アルゴリズムコード集
1. 配列のソート
1.1 バブルソート
配列の要素を並べ替えるためには、バブルソート、挿入ソート、クイックソートなどのアルゴリズムが利用可能です。バブルソートは初心者にも理解しやすく、重要なアルゴリズムの一つです。
昇順ソートの実現方法:
隣接する要素を比較し、前の方が大きい場合は位置を交換します。
配列の最初から最後まで、隣接要素の比較と交換を繰り ...
7月14日 02:15 投稿
红包分配システムの実装とソート処理
問題概要
N人の参加者間での紅包(お年玉)の分配記録を処理し、各人の収支を計算するプログラムを作成します。入力データから各人の収入金額、支出金額、獲得紅包数を算出し、指定された条件でソートして出力します。
入力形式
最初の行には参加者数N(≤104)が与えられます。続くN行には、各参加者が発行した紅包の情報が以下の形式で記述されます:
K N1 P1 N2 P2 ... ...
7月11日 16:44 投稿