1/**2* @param {number} upper3* @param {number} lower4* @param {number[]} colsum5* @return {number[][]}6*/7var reconstructMatrix = function (upper, lower, colsum) {8let dp = new Array(2);9for (let i = 0; i < dp.length; i++) {10dp[i] = new Array(colsum.length);11}12let first = upper;13let second = lower;14let upsum = 0;15let losum = 0;1617for (let i = 0; i < colsum.length; i++) {18if (colsum[i] === 2) {19dp[0][i] = 1;20dp[1][i] = 1;21upsum++;22losum++;23} else if (colsum[i] === 1) {24if (lower < upper) {25dp[0][i] = 1;26dp[1][i] = 0;27upper--;28upsum++;29} else {30dp[0][i] = 0;31dp[1][i] = 1;32lower--;33losum++;34}35} else if (colsum[i] === 0) {36dp[0][i] = 0;37dp[1][i] = 0;38} else {39return [];40}41}42if (losum !== second || upsum !== first) return [];43return dp;44};