Java Greedy Solution
Java\npublic List<List<Integer>> reconstructMatrix(int upper, int lower, int[] colsum) {\n\tList<List<Integer>> res = new ArrayList<List<Integer>>(){{\n\t\tadd(
```Java\npublic List<List<Integer>> reconstructMatrix(int upper, int lower, int[] colsum) {\n\tList<List<Integer>> res = new ArrayList<List<Integer>>(){{\n\t\tadd(new ArrayList<Integer>());\n\t\tadd(new ArrayList<Integer>());\n\t}};\n\n\tfor(int i=0; i < colsum.length; i++){\n\t\tif(colsum[i] == 2){\n\t\t\tres.get(0).add(1);\n\t\t\tres.get(1).add(1);\n\t\t\tupper--;\n\t\t\tlower--;\n\t\t}else if(colsum[i] == 1){\n\t\t\tif(upper > lower){\n\t\t\t\tres.get(0).add(1);\n\t\t\t\tres.get(1).add(0);\n\t\t\t\tupper--;\n\t\t\t}else{\n\t\t\t\tres.get(0).add(0);\n\t\t\t\tres.get(1).add(1);\n\t\t\t\tlower--;\n\t\t\t}\n\t\t}else{\n\t\t\tres.get(0).add(0);\n\t\t\tres.get(1).add(0);\n\t\t}\n\t}\n\n\tif(lower != 0 || upper != 0){\n\t\treturn Collections.emptyList();\n\t}\n\n\treturn res;       \n}\n```
['Java']