Question: https://codility.com/programmers/task/odd_occurrences_in_array
Question Name: Odd-Occurrences-In-Array or OddOccurrencesInArray
This question is completely the same as the Perm-Missing-Elem by codility. The comment from Kim is very helpful.
1 2 3 4 5 | def solution(A): result = 0 for number in A: result ^= number return result |
My Solution Using C#
https://codility.com/demo/results/training6NADS6-7EW/
Brilliant
Please could you explain what the ^= operator does in the expression?
Thanks.
Please refer to the post and comments in Perm-Missing-Elem by codility. Thanks!
dosn’t work with [7, 9, 3, 9, 3, 9, 3]
oh, sorry i’m dosn’t look at condition : “N is an odd integer within the range [1..1,000,000];”
That’s fine. Good to see that you catch the bug.
i still didnt got it.. Why A couldnt be [7,9,3,9,3,9,3]? N is 7, so odd and within 1 – 1,000,000…
oh, actually because 9 and 3 are also odd…hehe.. sorry about that.
Still don’t get it ?can you please explain?
JavaScript solution
Why I am getting only 11% for correctness?
When you are using “for (var number in A)”, you are actually getting the indexes, such as [0, 1, 2, …], rather than the array elements.
You should use:
for (var number of A)
use for each.
My Java solution (100%)
bro can u explain me one statement in else part “” i = j – 1; “”
Right after “i = j – 1”, it goes into for loop and run “i++”. Eventually, for the next iteration, i = j. And we are accessing the first next character that is not A[old i].
O(N^2) complexity
Yes. It’s O(N).
Thank you for your code.
I just wrote O(NlogN) Code. It can’t solved.
O(N^2) complexity
I’m quite new to programming but here’s my python solution. I didn’t realise I could have used XOR.
Welcome to the coding world 🙂
Your solution is working. That’s great! And the major improvement space is, it’s abusing the exception mechanism.
HI Sir
Could you please elucidate result ^= number this line of code. I have checked out the PermMissing problem and understood the XOR operation . However, I do not know what ^= will return
Thanks
Please check Kim’s comment. It’s very helpful.
ruby solution
all(map(lambda e: e%2, a)) # python built-in style
errr perhaps I should have read the *actual* question prior to answering.
Where can you get info on this operator, I can´t find it anywhere. How does it work?
Ruby’s built-in operator. I do not have any experience in Ruby. But it looks so.
Mi Javascript Solution 100%
My very simple Java solution (100%).
Bro i need explanation
This is my solution in python
I got a 100% score
Looks correct and have O(N) complexity.
It does comply with time complexity, but I think it exceeds space compexlity of O(1)
instead of
if ocurrences[n] % 2 0,
I think we could say:
if ocurrences[n] == 1:
right?
Does anyone know what the ^= means? The Perm-Missing-Elem by codility post that keeps being references does not explain this.
It’s XOR.
In PHP 100% To All 😀
I see lots of solutions that call sort but the standard sorts are comparison sorts and have run time O(N logN). The question asks for O(N). That they pass the test indicates that the system is unable to distinguish O(N) and O(N log N) but I don’t believe they are correct per the instructions.
You are totally correct. The solutions with
sort
is not right, because of the time complexity.A ruby solution…
I have the following solution:
but have only Correctness 80% because of the error during check:
And this errors occurs everytime…
Can somebody explain what is the issue in my solution?
Thanks in advance!
Consider the example [1, 1, 1, 2, 2].
Another in Python, using set:
this is a perfect solution!!!
But it still gave me this:
Detected time complexity:
O(N) or O(N*log(N))
I’m new to python and returned to coding after a long time! what does this mean?
Hallo. This is my C++ version. I am not sure, I get 100% but I am wondering if it is 100% bug-proof. I modify the python version of @Ty.
And yes this is O(N logN) . I am wondering if is it possible to obtain something similar to the one of @Ivan Padron .
>> catch (exception& e) // I am not sure of this part
It’s used to catch the odd occurrence, when the largest number occurs for odd number of times.
Thanks for your suggestion. Here is what I wrote on PHP and it gets 100% with Time complexity is O(N) or O(N*log(N)).
Python 3.6
Here’s the thing about all the solutions that sort and then iterate through the array. Sorting takes O(nlogn), so even if you are able to iterate through the array a single time to determine the odd occurrence, you will not meet the specified time complexity requirement.
Hi, here are my 100 solution.
https://app.codility.com/demo/results/trainingTJGJWC-323/
Possible C++ solution:
here is my 100% test pass but fails in time complexity
Time complex for your solution is O(N^2), you have a loop N in a loop N, test say it should be at most O(N).
https://en.wikipedia.org/wiki/Time_complexity
This is my solution in C++ I got 100%
I hijacked yours for solution in VB since nobody apparently uses it anymore except me. It got 100% so I guess it’s correct. I’m looking to learn Python soon after testing.
100% with O(N) or O(NlogN)
i don’t know why my solution just get 77%
time complexity is O(n**2)
I do not know your programming language, and did not debug the code. The idea is correct while inefficient. Also with some optimization, I guess
ar
is unnecessary.My 100% java solution:
O(N) or O(N*log(N)) complexity
PHP– 100% accurate O(N) or O(N*log(N)) complexity