C - 给定两个数组,如何找到其中一个数组的唯一元素数量?

时间:2016-11-01 06:30:31

标签: c arrays

我有这个代码我一直在研究,它显示了array1的值,它们是array2的重复值,也是array1中其他值的重复值,但是我在计算唯一值的数量时遇到了困难。 [sizeOfA,sizeOfB,a []和b []通过主函数]

获得
int aDupes = 0;
int bDupes = 0;
int i, j, k;

for(i = 0; i < sizeOfA; i++){
    for(j = 0; j < sizeOfB; j++){
        if(a[i] == b[j]){
            bDupes++;
        }
    } 
} 
for(i = 0; i < sizeOfA; i++){
    for(j = i+1; j < sizeOfA; j++){
        for(k = 0; k < sizeOfB; k++){
            if(a[i] == a[j] && a[i] == b[k]){
                aDupes++;
            }
        }
    }
}

所以举个例子 a [] = {1,3,3,5,6,7,8} b [] = {1,3,8,2} 会返回aDupes = 1; bDupes = 4.但是,独特元素的数量应为3(5,6,7)。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

a

select FROM_UNIXTIME('1479189600'); +-----------------------------+ | FROM_UNIXTIME('1479189600') | +-----------------------------+ | 2016-11-15 09:00:00 | +-----------------------------+ 变量将提供数组set time_zone='+00:00'; select FROM_UNIXTIME('1479189600'); +-----------------------------+ | FROM_UNIXTIME('1479189600') | +-----------------------------+ | 2016-11-15 06:00:00 | +-----------------------------+

的唯一元素的值

答案 1 :(得分:0)

使用映射,理解起来更简单,更清晰。

首先映射array2的所有元素,并通过制作数组1的映射来检查array1。