@@ -229,14 +229,6 @@ function transposeMatrix(matrixToTranspose) {
229
229
return transposedMatrix
230
230
}
231
231
232
- const tm = [
233
- [ 1 , 2 , 3 , 4 , 5 ] ,
234
- [ 1 , 20 , 3 , 4 , 5 ] ,
235
- [ 1 , 20 , 3 , 4 , 5 ] ,
236
- [ 1 , 20 , 3 , 4 , 5 ] ,
237
- [ 1 , 4 , 3 , 4 , 5 ]
238
- ]
239
-
240
232
function greatestProduct ( matrixToTest ) {
241
233
let greatestGreatestLineProduct = 0
242
234
for ( let i = 0 ; i < matrixToTest . length ; i ++ ) {
@@ -260,7 +252,32 @@ function greatestProduct(matrixToTest) {
260
252
}
261
253
}
262
254
263
- console . log ( greatestProduct ( matrix ) )
255
+ //Bonus - Iteration #8.1: Product of diagonals
256
+ //with another approach
257
+ function greatestProductOfDiagonals ( matrixToTest ) {
258
+ let greatestPartialProductOfDiagonals = 0
259
+ let partialProductOfDiagonalRight = 0
260
+ let partialProductOfDiagonalLeft = 0
261
+
262
+ for ( let i = 0 ; i < matrixToTest . length - 3 ; i ++ ) {
263
+ for ( let j = 0 ; j < matrixToTest . length - 3 ; j ++ ) {
264
+ partialProductOfDiagonalRight =
265
+ matrixToTest [ i ] [ j ] * matrixToTest [ i + 1 ] [ j + 1 ] * matrixToTest [ i + 2 ] [ j + 2 ] * matrixToTest [ i + 3 ] [ j + 3 ]
266
+ partialProductOfDiagonalLeft =
267
+ matrixToTest [ i ] [ j + 3 ] * matrixToTest [ i + 1 ] [ j + 2 ] * matrixToTest [ i + 2 ] [ j + 1 ] * matrixToTest [ i + 3 ] [ j ]
268
+ if ( partialProductOfDiagonalRight > greatestPartialProductOfDiagonals ) {
269
+ greatestPartialProductOfDiagonals = partialProductOfDiagonalRight
270
+ }
271
+ if ( partialProductOfDiagonalLeft > greatestPartialProductOfDiagonals ) {
272
+ greatestPartialProductOfDiagonals = partialProductOfDiagonalLeft
273
+ }
274
+ }
275
+ }
276
+
277
+ return greatestPartialProductOfDiagonals
278
+ }
279
+
280
+ console . log ( 'greatestProductOfDiagonals' , greatestProductOfDiagonals ( matrix ) )
264
281
265
282
// The following is required to make unit tests work.
266
283
/* Environment setup. Do not modify the below code. */
0 commit comments