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

Version Path
trackler-2.1.0.25 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.24 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.23 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.22 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.21 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.20 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.19 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.18 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.17 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.16 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.15 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.14 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.13 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.12 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.11 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.10 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.9 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.8 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.7 tracks/ecmascript/exercises/saddle-points/example.js
trackler-2.1.0.6 tracks/ecmascript/exercises/saddle-points/example.js