PHP Program for Find the element that appears once Last Updated : 22 Dec, 2021 Improve Improve Like Article Like Save Share Report Given an array where every element occurs three times, except one element which occurs only once. Find the element that occurs once. Expected time complexity is O(n) and O(1) extra space. Examples : Input: arr[] = {12, 1, 12, 3, 12, 1, 1, 2, 3, 3} Output: 2 In the given array all element appear three times except 2 which appears once. Input: arr[] = {10, 20, 10, 30, 10, 30, 30} Output: 20 In the given array all element appear three times except 20 which appears once. Recommended: Please solve it on “PRACTICE ” first, before moving on to the solution. PHP <?php function getSingle($arr, $n) { $ones = 0; $twos = 0 ; $common_bit_mask; // Let us take the example of // {3, 3, 2, 3} to understand this for($i = 0; $i < $n; $i++ ) { /* The expression "one & arr[i]" gives the bits that are there in both \'ones\' and new element from arr[]. We add these bits to \'twos\' using bitwise OR Value of \'twos\' will be set as 0, 3, 3 and 1 after 1st, 2nd, 3rd and 4th iterations respectively */ $twos = $twos | ($ones & $arr[$i]); /* XOR the new bits with previous \'ones\' to get all bits appearing odd number of times Value of \'ones\' will be set as 3, 0, 2 and 3 after 1st, 2nd, 3rd and 4th iterations respectively */ $ones = $ones ^ $arr[$i]; /* The common bits are those bits which appear third time. So these bits should not be there in both \'ones\' and \'twos\'. common_bit_mask contains all these bits as 0, so that the bits can be removed from \'ones\' and \'twos\' Value of \'common_bit_mask\' will be set as 00, 00, 01 and 10 after 1st, 2nd, 3rd and 4th iterations respectively */ $common_bit_mask = ~($ones & $twos); /* Remove common bits (the bits that appear third time) from \'ones\' Value of \'ones\' will be set as 3, 0, 0 and 2 after 1st, 2nd, 3rd and 4th iterations respectively */ $ones &= $common_bit_mask; /* Remove common bits (the bits that appear third time) from \'twos\' Value of \'twos\' will be set as 0, 3, 1 and 0 after 1st, 2nd, 3rd and 4th itearations respectively */ $twos &= $common_bit_mask; // uncomment this code to see // intermediate values // printf (" %d %d n", ones, twos); } return $ones; } // Driver Code $arr = array(3, 3, 2, 3); $n = sizeof($arr); echo "The element with single " . "occurrence is ", getSingle($arr, $n); // This code is contributed by m_kit ?> Please refer complete article on Find the element that appears once for more details! Like Article Suggest improvement Next Php Program To Find Next Greater Element Share your thoughts in the comments Add Your Comment Please Login to comment... Similar Reads JavaScript Program to Find Element that Appears once in Array where Other Elements Appears Twice How to find every element that exists in any of two given arrays once using JavaScript ? How to attach an event to an element which should be executed only once in JavaScript ? How to reload page only once in JavaScript ? Vue.js v-once Directive Top 10 Tools That Every Web Developer Must Try Once How to set a click event once a page or view is loaded in vue.js? How to increase the width of a div by specified pixels once it is clicked using jQuery ? How to apply styles to multiple classes at once ? Backbone.js once Event Like GeeksforGeeks Article Tags : PHP Programs Web Technologies