function solution(rows, columns, queries) {
let baseData = [];
let tmpRows = [];
for (let i = 1; i <= rows * columns + 1; i++) {
if (tmpRows.length === columns) {
baseData.push(tmpRows);
tmpRows = [];
i = i - 1;
} else {
tmpRows.push(i);
}
}
let result = [];
queries.forEach((el, idx, arr) => {
let leftRowNumber = el[0] - 1;
let leftColumnNumber = el[1] - 1;
let rightRowNumber = el[2] - 1;
let rightColumnNumber = el[3] - 1;
let tmpQueue = [baseData[leftRowNumber][leftColumnNumber]];
let tmpNumber = [baseData[leftRowNumber][leftColumnNumber]];
for (let x = leftColumnNumber; x < rightColumnNumber; x++) {
tmpNumber.push(baseData[leftRowNumber][x + 1]);
tmpQueue.push(baseData[leftRowNumber][x + 1]);
baseData[leftRowNumber][x + 1] = tmpQueue.shift();
}
for (let x = leftRowNumber; x < rightRowNumber; x++) {
tmpNumber.push(baseData[x + 1][rightColumnNumber]);
tmpQueue.push(baseData[x + 1][rightColumnNumber]);
baseData[x + 1][rightColumnNumber] = tmpQueue.shift();
}
for (let x = rightColumnNumber; x > leftColumnNumber; x--) {
tmpNumber.push(baseData[rightRowNumber][x - 1]);
tmpQueue.push(baseData[rightRowNumber][x - 1]);
baseData[rightRowNumber][x - 1] = tmpQueue.shift();
}
for (let x = rightRowNumber; x > leftRowNumber; x--) {
tmpNumber.push(baseData[x - 1][leftColumnNumber]);
tmpQueue.push(baseData[x - 1][leftColumnNumber]);
baseData[x - 1][leftColumnNumber] = tmpQueue.shift();
}
result.push(Math.min(...tmpNumber));
});
return result;
}
console.log(
solution(6, 6, [[2,2,5,4],[3,3,6,6],[5,1,6,3]])
);