JAVA 100% : This row save my life - return new ArrayList(Arrays.asList(a1, a2));
\nclass Solution {\n    public List<List<Integer>> reconstructMatrix(int upper, int lower, int[] colsum) {\n        int n = colsum.length;\n        int[] a1 = n
```\nclass Solution {\n    public List<List<Integer>> reconstructMatrix(int upper, int lower, int[] colsum) {\n        int n = colsum.length;\n        int[] a1 = new int[n];\n        int[] a2 = new int[n];\n        \n        for (int i = 0; i < n; i++) {\n            if (colsum[i] == 2) {\n                a1[i] = 1;\n                a2[i] = 1;\n                upper--;\n                lower--;\n            }\n            else if (colsum[i] == 1) {\n                if (upper >= lower) {\n                    a1[i] = 1;\n                    upper--;\n                } else {\n                    a2[i] = 1;\n                    lower--;\n                }\n            }\n        }\n        \n        if (upper != 0 || lower != 0)\n                return new ArrayList();\n        \n        return new ArrayList(Arrays.asList(a1, a2));\n    }\n}\n```
[]