Sha256: 15e8ddaa124e39323d43542023a895a1dc0f15f793989ed9645cd247adc55bc1
Contents?: true
Size: 864 Bytes
Versions: 181
Compression:
Stored size: 864 Bytes
Contents
function findSaddlePoints(rows, rowMaxs, colMins) { return rows.reduce((saddlePoints, row, rowIndex) => { row.forEach((cell, colIndex) => { if (cell === rowMaxs[rowIndex] && cell === colMins[colIndex]) { saddlePoints.push([rowIndex, colIndex]); } }); return saddlePoints; }, []); } export default class Matrix { constructor(data) { this.rows = []; this.columns = []; data.split(/\n/).map((row, ii) => { this.rows.push(row.trim().split(/\s/).map((cell, jj) => { this.columns[jj] ? this.columns[jj].push(+cell) : this.columns[jj] = [+cell]; return +cell; })); }); const rowMaxs = this.rows.map(row => Math.max.apply(null, row)); const colMins = this.columns.map(col => Math.min.apply(null, col)); this.saddlePoints = findSaddlePoints(this.rows, rowMaxs, colMins); } }
Version data entries
181 entries across 181 versions & 1 rubygems