Find a Number occurring odd number of times in a Given array

Objective: Given a array of integers, in which every elements occurs even number of times except one number which occurs add number of times. Find out that number.

Example:

  int[] A = { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7 };
Element appearing add number of times: 5

Approach:

we know that A XOR A = 0 so numbers appearing even number of times will be cancelled out and remaining element will the number which is appearing odd number of times.

Code:

public class OddOccuringNumber {
public static int findNumber(int [] A){
int x=0;
for(int i=0;i<A.length;i++){
x= x^A[i];
}
return x;
}
public static void main(String[] args) {
int[] A = { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7 };
System.out.println("Element appearing add number of times: " + findNumber(A));
}
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

Output:

Element appearing add number of times: 5

2 thoughts on “Find a Number occurring odd number of times in a Given array”

  1. Code Does not work for this input : {2, 7, 5, 4, 5, 2, 4, 3, 5, 2, 4, 4, 2, 7, 4, 4};
    Returns ‘6’ which is not even in the array.

    Reply
    • Because your input has two numbers 3 and 5 which occurs odd number of times. Objec­tive of problem is ” Given a array of inte­gers, in which every ele­ments occurs even num­ber of times except one num­ber which occurs add num­ber of times”

      Reply

Leave a Reply to tutorialhorizon Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.