重複しないように2つの配列をどのようにマージしますか?

リストを統合し重複を削除する方法はイテレーションを使用することです。

具体的な手順は次のとおりです。

  1. 結合したい2つの配列arr1、arr2を定義する。
  2. 結果を格納する新しい配列 result を定義する。
  3. arr1の配列をループして、要素をresultの配列に追加する
  4. arr2の配列を繰り返し、各要素がresultの配列にすでにあるか判定し、存在しない場合はresultの配列に追加する。
  5. マージが完了すると、result配列にはマージされて重複が削除された結果が含まれます。

以下に示すのは、C言語で書かれたサンプルコードです。

#include <stdio.h>

int main() {
    int arr1[] = {1, 2, 3, 4};
    int arr2[] = {3, 4, 5, 6};
    int len1 = sizeof(arr1) / sizeof(arr1[0]);
    int len2 = sizeof(arr2) / sizeof(arr2[0]);
    int result[100];  // 假设合并后的数组最大长度为100
    int len = 0;  // 合并后的数组长度

    // 将arr1数组的元素添加到result数组中
    for (int i = 0; i < len1; i++) {
        result[len++] = arr1[i];
    }

    // 遍历arr2数组,将不重复的元素添加到result数组中
    for (int i = 0; i < len2; i++) {
        int exist = 0;  // 标记arr2当前元素是否已存在于result数组中
        for (int j = 0; j < len; j++) {
            if (arr2[i] == result[j]) {
                exist = 1;
                break;
            }
        }
        if (!exist) {
            result[len++] = arr2[i];
        }
    }

    // 输出合并并去重后的数组
    for (int i = 0; i < len; i++) {
        printf("%d ", result[i]);
    }
    printf("\n");

    return 0;
}

上記のコードの出力は1 2 3 4 5 6となり、重複を削除して結合した配列を表しています。

bannerAds