C语言怎么算 同或,找一个数组中重复出现了一次的元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言怎么算 同或,找一个数组中重复出现了一次的元素相关的知识,希望对你有一定的参考价值。

方法1:先快速排序,然后遍历
方法2:遍历数组,把遍历的元素计算一个hash放到另外的数组里去,如果一个位置放了2次,就表明有2个。
参考技术A 刚刚写的,设数组有10个数,参考程序如下:
#include<stdio.h>

int main()



int p[10];

int k,i;

printf("输入10个数字,以空格隔开\n");

for (int i=0; i<10; i++)

scanf("%d",&p[i]);



for (i = 0; i<10; i++)

for (k = 9; k>=0; k--)

if (i != k)

if (p[i]==p[k])

k--;

break;







if (k>=0)

printf("元素重复\n");

break;





if (i==10)

printf("元素无重复\n");



return 0;

追问

算法复杂度!!!

追答

你不是来问程序的?

以上是关于C语言怎么算 同或,找一个数组中重复出现了一次的元素的主要内容,如果未能解决你的问题,请参考以下文章

数组中只出现一次的数字

leecode-268. 丢失的数字(异或的应用,找没有出现的数字,找只出现一次的数字)

leecode-268. 丢失的数字(异或的应用,找没有出现的数字,找只出现一次的数字)

leecode-268. 丢失的数字(异或的应用,找没有出现的数字,找只出现一次的数字)

c_cpp 一个数组,只有一个数出现了一次,其他数出现三次,求出现一次的数。时间复杂度O(N),空间复杂度O(1)

统计数组中的字符C语言解法——剑指 Offer 50. 第一个只出现一次的字符