Just observation
IntuitionApproachComplexity
Time complexity: O(n);

Space complexity: O(1)
Code
# Intuition
    observation
<!-- Describe your first thoughts on how to solve this problem. -->

# Approach
<!-- Describe your approach to solving the problem. -->


# Complexity
- Time complexity: O(n);
<!-- Add your time complexity here, e.g. $$O(n)$$ -->

- Space complexity: O(1)
<!-- Add your space complexity here, e.g. $$O(n)$$ -->

# Code
```cpp []
class Solution {
public:
    vector<int> addNegabinary(vector<int>& arr1, vector<int>& arr2) {
        vector<int> ans;
        reverse(arr1.begin(), arr1.end());
        reverse(arr2.begin(), arr2.end());

        int carry = 0;
        int i = 0;
        while(i < arr1.size() && i < arr2.size()) {
            int a = arr1[i] + carry;
            int b = arr2[i];
            int c = a+b;
            if(c == 2) {
                carry = -1;
                ans.push_back(0);
            } else if(c == 0) {
                carry = 0;
                ans.push_back(0);
            } else if(c == -1){
                carry = 1;
                ans.push_back(1);
            } else if(c == 1) {
                carry = 0;
                ans.push_back(1);
            }
            else {
                carry = -1;
                ans.push_back(1);
            }
            i++;
        }

        while(i < arr1.size()) {
            int c = arr1[i] + carry;
            if(c == 2) {
                carry = -1;
                ans.push_back(0);
            } else if(c == 0) {
                carry = 0;
                ans.push_back(0);
            } else if(c == -1){
                carry = 1;
                ans.push_back(1);
            }else if(c == 1) {
                carry = 0;
                ans.push_back(1);
            } else {
                carry = -1;
                ans.push_back(1);
            }
            i++;
        }
        while(i < arr2.size()) {
            int c = arr2[i] + carry;
            if(c == 2) {
                carry = -1;
                ans.push_back(0);
            } else if(c == 0) {
                carry = 0;
                ans.push_back(0);
            } else if(c == -1){
                carry = 1;
                ans.push_back(1);
            }else if(c == 1) {
                carry = 0;
                ans.push_back(1);
            } else {
                carry = -1;
                ans.push_back(1);
            }
            i++;
        }
        while(carry) {
            int c = carry;
            if(c == 2) {
                carry = -1;
                ans.push_back(0);
            } else if(c == 0) {
                carry = 0;
                ans.push_back(0);
            } else if(c == -1){
                carry = 1;
                ans.push_back(1);
            }else if(c == 1) {
                carry = 0;
                ans.push_back(1);
            } else {
                carry = -1;
                ans.push_back(1);
            }
        }
        while(ans.size() > 1 && ans.back() == 0) {
            ans.pop_back();
        } 
        reverse(ans.begin(), ans.end());

        return ans;
    }
};
```
['C++']