diff --git a/solution/0600-0699/0624.Maximum Distance in Arrays/Solution.js b/solution/0600-0699/0624.Maximum Distance in Arrays/Solution.js index 6d7b30f2e7659..1aad3bc59ea44 100644 --- a/solution/0600-0699/0624.Maximum Distance in Arrays/Solution.js +++ b/solution/0600-0699/0624.Maximum Distance in Arrays/Solution.js @@ -3,16 +3,17 @@ * @return {number} */ var maxDistance = function (arrays) { - const n = arrays.length; - let res = 0; - let [min, max] = [Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY]; + let minVal = arrays[0][0]; + let maxVal = arrays[0][arrays[0].length - 1]; + let maxDist = 0; - for (let i = 0; i < n; i++) { - const a = arrays[i]; - res = Math.max(Math.max(a.at(-1) - min, max - a[0]), res); - min = Math.min(min, a[0]); - max = Math.max(max, a.at(-1)); + for (let i = 1; i < arrays.length; i++) { + const currentMin = arrays[i][0]; + const currentMax = arrays[i][arrays[i].length - 1]; + maxDist = Math.max(maxDist, Math.abs(currentMax - minVal), Math.abs(maxVal - currentMin)); + minVal = Math.min(minVal, currentMin); + maxVal = Math.max(maxVal, currentMax); } - return res; + return maxDist; }; diff --git a/solution/0600-0699/0664.Strange Printer/Solution.js b/solution/0600-0699/0664.Strange Printer/Solution.js new file mode 100644 index 0000000000000..1e41a60420d0e --- /dev/null +++ b/solution/0600-0699/0664.Strange Printer/Solution.js @@ -0,0 +1,21 @@ +/** + * @param {string} s + * @return {number} + */ +var strangePrinter = function(s) { + const n = s.length; + const f = new Array(n).fill(0).map(() => new Array(n).fill(1 << 30)); + for (let i = n - 1; i >= 0; --i) { + f[i][i] = 1; + for (let j = i + 1; j < n; ++j) { + if (s[i] === s[j]) { + f[i][j] = f[i][j - 1]; + } else { + for (let k = i; k < j; ++k) { + f[i][j] = Math.min(f[i][j], f[i][k] + f[k + 1][j]); + } + } + } + } + return f[0][n - 1]; +};