Java no stack
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \nHandle the carryover by
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\nHandle the carryover by positive/negative\n# Complexity\n- Time complexity: O(N)\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity: O(N)\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        int i = arr1.length - 1, j = arr2.length - 1;\n        List<Integer> res = new ArrayList<>();\n        int carry = 0;\n        while (i >= 0 || j >= 0 || carry != 0) {\n            int sum = 0;\n            if (i >= 0) sum += arr1[i--];\n            if (j >= 0) sum += arr2[j--];\n\n            if (sum - carry >= 0) {\n                res.add((sum - carry) % 2);\n                carry = (sum - carry) / 2 ;\n            } else {\n                res.add(1);\n                carry = -1;\n            }            \n        }\n        while (res.size() > 1 && res.get(res.size() - 1) == 0) {\n            res.remove(res.size() - 1);\n        }\n        int[] ret = new int[res.size()];\n        for (int k = res.size() - 1; k >= 0; k--) \n            ret[res.size()-k-1] = res.get(k);\n        return ret; \n    }\n}\n```
['Java']