Java solution - 2ms
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution {\n    public int[] addNegabinary(int[] arr1, int[] arr2) {\n        List<Integer> list = new ArrayList<>();\n        int m = arr1.length - 1;\n        int n = arr2.length - 1;\n        int carry = 0;\n        while (m >= 0 || n >= 0 || carry != 0) {\n            int sum = carry;\n            if (m >= 0) {\n                sum += arr1[m--];\n            }\n            if (n >= 0) {\n                sum += arr2[n--];\n            }\n            list.add(0, sum & 1);\n            carry = -(sum >> 1);\n        }\n        while (list.size() > 1 && list.get(0) == 0) {\n            list.remove(0);\n        }\n        int[] res = new int[list.size()];\n        for (int i = 0; i < list.size(); i++) {\n            res[i] = list.get(i);\n        }\n        return res;\n    }\n}\n\n```
['Java']