From cb7b732340c2117a4f3b342f741cc871bf1aaea5 Mon Sep 17 00:00:00 2001 From: wangzemei Date: Sun, 29 Sep 2024 16:42:56 +0800 Subject: [PATCH] + [task#128767] add calculation logic for maxLeft and minRight for the getMaxLeftAndMinRight. --- lib/zin/wg/think3c/js/v1.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/zin/wg/think3c/js/v1.js b/lib/zin/wg/think3c/js/v1.js index 92a1328b7c..6957d2ae13 100644 --- a/lib/zin/wg/think3c/js/v1.js +++ b/lib/zin/wg/think3c/js/v1.js @@ -175,7 +175,19 @@ function getMaxLeftAndMinRight(rows, start, h) const rowLength = rows[Math.min(start + h - 1, rows.length - 1)]?.length || 0; let left = rows[start][0][0] || 0; let right = rowLength ? rows[Math.min(start + h - 1, rows.length - 1)][rowLength - 1][1] : 0; + for(let i = start; i < start + h; i++) + { + if(rows[i]) + { + const rowData = rows[i]; + const flattenedRow = flattenData(rowData); + const maxLeft = flattenedRow.reduce((max, item) => item[0] > max ? item[0] : max, -Infinity); + const minRight = flattenedRow.reduce((min, item) => item[1] < min ? item[1] : min, Infinity); + left = Math.max(left, maxLeft); + right = Math.min(right, minRight); + } + } return {left, right}; }