C ++ From Wikipedia & Some explaination
The base algorithm is derived from wikipedia, basically, the majority of bit sum is the same. The main difference is to understand that the sum at each bit loca
The base algorithm is derived from wikipedia, basically, the majority of bit sum is the same. The main difference is to understand that the sum at each bit location, will be decompose to carry, and the bit at current location. So from the wikipedia chart,  for example, when bit sum equals to 2, it should be decomposed to current bit = 0, carry = -1. (because 0 * 2^0 + (-1)*(-2) = 2)\n\n![image](https://assets.leetcode.com/users/marzio/image_1591934544.png)\n\nTherefore, we know that we can mostly perform bit additions, and simply addressing the carry based on the total sum.\n\n```\nclass Solution {\npublic:\n    vector<int> addNegabinary(vector<int>& arr1, vector<int>& arr2) {\n        int carry = 0;\n        vector<int> res;\n        int p1 = (int)arr1.size() -  1, p2 = (int)arr2.size() -  1;\n        while( p1 >=0 || p2 >=0 || carry!= 0) {\n           if(p1 >= 0) carry += arr1[p1--];\n           if(p2 >= 0) carry += arr2[p2--];\n           res.push_back(abs(carry) & 1);\n           carry = carry > 1 ? -1 : carry < 0 ? 1 : 0;\n        }\n        \n        while(res.size() > 1 &&res.back() == 0) \n            res.pop_back();\n        reverse(res.begin(), res.end());\n        return res;\n    }\n};\n```
[]