Data Structure Array: Find the two numbers with odd occurrences in an unsorted array

http://www.geeksforgeeks.org/find-the-two-numbers-with-odd-occurences-in-an-unsorted-array/

 1 #include <iostream>

 2 #include <vector>

 3 #include <algorithm>

 4 #include <queue>

 5 #include <stack>

 6 #include <string>

 7 #include <fstream>

 8 #include <map>

 9 using namespace std;

10 

11 void printtwoodd(int arr[], int n) {

12     int x = arr[0];

13     for (int i = 1; i < n; i++) x ^= arr[i];

14     x &= ~(x-1);

15     int ans1, ans2;

16     ans1 = ans2 = 0;

17     for (int i = 0; i < n; i++) {

18         if (arr[i] & x) ans1 ^= arr[i];

19         else ans2 ^= arr[i];

20     }

21     cout << ans1 << " " << ans2 << endl;

22 }

23 

24 int main() {

25     int arr[8] = {4, 2, 4, 5, 2, 3, 3, 1};

26     printtwoodd(arr, 8);

27     return 0;

28 }

 

你可能感兴趣的:(number)