首页 > 试题广场 > 寻找奇数
[编程题]寻找奇数
  • 热度指数:1669 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
现在有一个长度为n的正整数序列,其中只有【一种】数值出现了奇数次,其他数值均出现偶数次,请你找出那个出现奇数次的数值。

输入描述:
第一行:一个整数n,表示序列的长度。第二行:n个正整数ai,两个数中间以空格隔开。


输出描述:
一个数,即在序列中唯一出现奇数次的数值。
示例1

输入

5
2 1 2 3 1

输出

3

XOR的简单应用

#include <bits/stdc++.h>
using namespace std;
int n, x, ans;
int main() {
    ios::sync_with_stdio(false);
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        cin >> x;
        ans ^= x;
    }
    cout << ans;
}

编辑于 2019-07-20 08:05:38 回复(0)
//运行时间:211ms
//占用内存:612k
#include <iostream>
using namespace std;

int main()
{
    int n = 0;
    int num;
    unsigned int sum = 0;
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> n;
    for(int i = 0; i < n; ++i){
        cin >> num;
        sum ^= num;
    }
    cout << sum;
    return 0;
}

编辑于 2019-08-01 13:24:55 回复(0)
#include <bits/stdc++.h>
using namespace std;

int main(){
    int n,x,s=0;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>x;
        s ^= x;
    }
    cout<<s<<endl;
    return 0;
}

发表于 2019-09-09 00:19:50 回复(0)
import collections  def f(s):
    a=collections.Counter(s)  for i in a.keys():  if a[i]%2==1:  return i  if __name__=="__main__":
    s1=int(input())
    s2=list(map(int,input().strip().split(" ")))  print(f(s2))

发表于 2019-09-03 22:03:39 回复(0)
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()//求一个数组中出现奇数次的数
{
	int n,a,num = 1;
	while(cin>>n)
	{
		vector<int> data(n);
		for (int i = 0; i < n; i++)
		{
			cin>>data[i];
		}
		a = data[0];
		for (int i = 1; i < n; i++)
		{
			a^=data[i];
		}
		cout<<a<<endl;
	}
	return 0;
}

发表于 2019-08-18 18:55:41 回复(0)
py异或有点慢
n = int(input())
res = list(map(int, input().split()))
num = 0
for i in res:
    num = num^i
print(num)


发表于 2019-08-09 23:13:10 回复(4)
n = int(input().strip())
nums = list(map(int, input().strip().split()))

ans = nums[0]

for i in range(1, len(nums)):
    ans = ans ^ nums[i]
print(ans)

发表于 2019-08-01 00:21:13 回复(0)
剑指offer原题变种,但注意同样的算法使用C语言能过,但是Java会超时!
发表于 2019-07-25 22:14:41 回复(0)
import java.util.*;
 public class Main {
     public static void main(String[] args){
        Scanner sc= new Scanner(System.in);
        int m=sc.nextInt();
        int num=0;
        for(int i=0;i<m;i++)
            num=num^sc.nextInt();
        System.out.println(num);
     }    
 }
超时了~~~哭
发表于 2019-07-23 20:29:06 回复(1)