//////////////////////////////////// //一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 //心得:开始我以为是只出现一次的一个数,题中确是有2个只出现一次的数 //数组从i=0,开始,另一个j=i+1开始,当出现一个相等的我就把它保存在我新建的数组里面b[n/2+1], //当j==n时,说明在i位置之后没有跟a[i]相等的数值了,但是不能保证前面没有, //于是这里我保存在b数组里面的数据就起作用了,再遍历一遍b数组,如果b数组里面依然没有找到相同 //的数字,我们就得到这个只出现一次的数字.这时就可以保存它,然后再求下一个. //剑指offer完美通过. #include <iostream> using namespace std; void Grial(int a[],int n) { int b[n/2+1]; int i = 0; int k = 0 ; for(;i<n;i++) { int j ; for(j = i+1 ; j<n;j++) { if(a[i]==a[j]) { b[k++]=a[i]; break; } } int m = 0 ; if(j>=n) { for(;m<k;m++) { if(a[i]==b[m]) break; } } if(m>=k && j>=n) { cout<<a[i]<<endl;//将A[i]存储到*num1,*num2中就是剑指offer中的结果. } } } int main() { int a[]={1,1,2,3,4,4}; Grial(a,6); return 0; }
时间: 2024-10-11 04:07:50