亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c語言怎么找出數組中重復的數字

小億
194
2023-10-25 22:39:38
欄目: 編程語言

可以使用兩種方法來找出數組中重復的數字。

方法一:使用“哈希表”

  1. 創建一個哈希表,用于記錄每個數字出現的次數。
  2. 遍歷數組,將數組中的每個數字作為鍵,放入哈希表中,并將對應的值加1。
  3. 遍歷哈希表,找出值大于1的鍵,即為重復的數字。

示例代碼如下:

#include <stdio.h>

void findDuplicates(int arr[], int size) {
    // 哈希表
    int hashTable[1000] = {0};
    
    // 遍歷數組,將數字放入哈希表
    for (int i = 0; i < size; i++) {
        hashTable[arr[i]] += 1;
    }
    
    // 遍歷哈希表,找出重復的數字
    for (int i = 0; i < 1000; i++) {
        if (hashTable[i] > 1) {
            printf("%d ", i);
        }
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 4, 5, 6, 6, 7};
    int size = sizeof(arr) / sizeof(arr[0]);
    
    printf("重復的數字為:");
    findDuplicates(arr, size);
    
    return 0;
}

方法二:使用“交換法”

  1. 遍歷數組,將數組中的每個數字放到對應的索引位置上。
  2. 如果當前索引位置上已經有了相同的數字,則找到了一個重復的數字。

示例代碼如下:

#include <stdio.h>
#include <stdbool.h>

void findDuplicates(int arr[], int size) {
    printf("重復的數字為:");
    
    for (int i = 0; i < size; i++) {
        while (arr[i] != i) {
            if (arr[i] == arr[arr[i]]) {
                printf("%d ", arr[i]);
                break;
            }
            
            int temp = arr[arr[i]];
            arr[arr[i]] = arr[i];
            arr[i] = temp;
        }
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 4, 5, 6, 6, 7};
    int size = sizeof(arr) / sizeof(arr[0]);
    
    findDuplicates(arr, size);
    
    return 0;
}

以上兩種方法都可以找出數組中重復的數字,選擇哪種方法取決于具體的需求和數據規模。

0
开化县| 凤台县| 寿光市| 若羌县| 日土县| 申扎县| 甘洛县| 厦门市| 吉木乃县| 获嘉县| 温州市| 定边县| 连城县| 曲水县| 辉南县| 临桂县| 呈贡县| 凉山| 准格尔旗| 三门峡市| 庆城县| 通州区| 齐河县| 永城市| 吉水县| 怀宁县| 鲁山县| 鹰潭市| 白沙| 白水县| 安仁县| 砀山县| 和田县| 台江县| 新余市| 禄丰县| 法库县| 岳池县| 连山| 淳安县| 炉霍县|