Modulo arithmetics is what you want. Here you need only arithmetics modulo 2, i.e. only look at the last bit of each number, if binary encoding of natural numbers is used, or two's complement representation of positive and negative number.
It works with one's complement only for positive integers.
Then you can simply use bitwise XOR for addition, which is somewhat cheaper than doing a real addition.
As proved by hengxin, you have to do it for all elements of your array, so that the algorithm is necessarily linear in the size of the array.
This is no better complexity than other answers, but your question title is best solution. So there is more than complexity to the best solution (else we would be doing matrix multiplications much faster).
Bonus: using modulo arithmetics, or XOR, has the advantage that you do not risk arithmetic overflow as you would by computing the actual sum.