Files
mrugesh 91df817cfe fix(guide) add stubs, update spellings and prepare for move (#36531)
* fix(guide) add stubs and correct file path misspellings and pr… (#36528)

* fix: corrected file path to match curriculum

* fix: renamed to newer challenge name

* fix: added solutions to articles from challenge files

* fix: added missing .english to file name

* fix: added missing title to guide article

* fix: correct solution for guide article

* fix: replaced stub with hint

* fix: added space in Hint headers

* fix: added solution to guide article

* fix: added solution to guide article

* test: replaced stub with hint and solution

* fix: add Problem number: to title

* fix: changed generatorexponential to correct name

* fix: renamed knight's tour to knights-tour

* fix: updated guide article
2019-07-30 00:25:58 +05:30

8.0 KiB

title
title
Problem 8: Largest product in a series

Problem 8: Largest product in a series


Problem Explanation

  • In this challenge we need to get the largest product of n cosnecutive numbers.
  • We can use the sliding window method to solve this problem.
  • Steps to follow:
    1. Select the first n consecutive numbers.
    2. Find their product.
    3. Compare it to the maximum product yet.
    4. Move the pointer by 1 element.
    5. Repeat the process.
  • This algorithm's big O is O(n*m) where n is the length of the array and m is the number of consecutive elements.

Solutions

Solution 1 (Click to Show/Hide)
function largestProductinaSeries(n) {
  let thousandDigits = [
    7,
    3,
    1,
    6,
    7,
    1,
    7,
    6,
    5,
    3,
    1,
    3,
    3,
    0,
    6,
    2,
    4,
    9,
    1,
    9,
    2,
    2,
    5,
    1,
    1,
    9,
    6,
    7,
    4,
    4,
    2,
    6,
    5,
    7,
    4,
    7,
    4,
    2,
    3,
    5,
    5,
    3,
    4,
    9,
    1,
    9,
    4,
    9,
    3,
    4,
    9,
    6,
    9,
    8,
    3,
    5,
    2,
    0,
    3,
    1,
    2,
    7,
    7,
    4,
    5,
    0,
    6,
    3,
    2,
    6,
    2,
    3,
    9,
    5,
    7,
    8,
    3,
    1,
    8,
    0,
    1,
    6,
    9,
    8,
    4,
    8,
    0,
    1,
    8,
    6,
    9,
    4,
    7,
    8,
    8,
    5,
    1,
    8,
    4,
    3,
    8,
    5,
    8,
    6,
    1,
    5,
    6,
    0,
    7,
    8,
    9,
    1,
    1,
    2,
    9,
    4,
    9,
    4,
    9,
    5,
    4,
    5,
    9,
    5,
    0,
    1,
    7,
    3,
    7,
    9,
    5,
    8,
    3,
    3,
    1,
    9,
    5,
    2,
    8,
    5,
    3,
    2,
    0,
    8,
    8,
    0,
    5,
    5,
    1,
    1,
    1,
    2,
    5,
    4,
    0,
    6,
    9,
    8,
    7,
    4,
    7,
    1,
    5,
    8,
    5,
    2,
    3,
    8,
    6,
    3,
    0,
    5,
    0,
    7,
    1,
    5,
    6,
    9,
    3,
    2,
    9,
    0,
    9,
    6,
    3,
    2,
    9,
    5,
    2,
    2,
    7,
    4,
    4,
    3,
    0,
    4,
    3,
    5,
    5,
    7,
    6,
    6,
    8,
    9,
    6,
    6,
    4,
    8,
    9,
    5,
    0,
    4,
    4,
    5,
    2,
    4,
    4,
    5,
    2,
    3,
    1,
    6,
    1,
    7,
    3,
    1,
    8,
    5,
    6,
    4,
    0,
    3,
    0,
    9,
    8,
    7,
    1,
    1,
    1,
    2,
    1,
    7,
    2,
    2,
    3,
    8,
    3,
    1,
    1,
    3,
    6,
    2,
    2,
    2,
    9,
    8,
    9,
    3,
    4,
    2,
    3,
    3,
    8,
    0,
    3,
    0,
    8,
    1,
    3,
    5,
    3,
    3,
    6,
    2,
    7,
    6,
    6,
    1,
    4,
    2,
    8,
    2,
    8,
    0,
    6,
    4,
    4,
    4,
    4,
    8,
    6,
    6,
    4,
    5,
    2,
    3,
    8,
    7,
    4,
    9,
    3,
    0,
    3,
    5,
    8,
    9,
    0,
    7,
    2,
    9,
    6,
    2,
    9,
    0,
    4,
    9,
    1,
    5,
    6,
    0,
    4,
    4,
    0,
    7,
    7,
    2,
    3,
    9,
    0,
    7,
    1,
    3,
    8,
    1,
    0,
    5,
    1,
    5,
    8,
    5,
    9,
    3,
    0,
    7,
    9,
    6,
    0,
    8,
    6,
    6,
    7,
    0,
    1,
    7,
    2,
    4,
    2,
    7,
    1,
    2,
    1,
    8,
    8,
    3,
    9,
    9,
    8,
    7,
    9,
    7,
    9,
    0,
    8,
    7,
    9,
    2,
    2,
    7,
    4,
    9,
    2,
    1,
    9,
    0,
    1,
    6,
    9,
    9,
    7,
    2,
    0,
    8,
    8,
    8,
    0,
    9,
    3,
    7,
    7,
    6,
    6,
    5,
    7,
    2,
    7,
    3,
    3,
    3,
    0,
    0,
    1,
    0,
    5,
    3,
    3,
    6,
    7,
    8,
    8,
    1,
    2,
    2,
    0,
    2,
    3,
    5,
    4,
    2,
    1,
    8,
    0,
    9,
    7,
    5,
    1,
    2,
    5,
    4,
    5,
    4,
    0,
    5,
    9,
    4,
    7,
    5,
    2,
    2,
    4,
    3,
    5,
    2,
    5,
    8,
    4,
    9,
    0,
    7,
    7,
    1,
    1,
    6,
    7,
    0,
    5,
    5,
    6,
    0,
    1,
    3,
    6,
    0,
    4,
    8,
    3,
    9,
    5,
    8,
    6,
    4,
    4,
    6,
    7,
    0,
    6,
    3,
    2,
    4,
    4,
    1,
    5,
    7,
    2,
    2,
    1,
    5,
    5,
    3,
    9,
    7,
    5,
    3,
    6,
    9,
    7,
    8,
    1,
    7,
    9,
    7,
    7,
    8,
    4,
    6,
    1,
    7,
    4,
    0,
    6,
    4,
    9,
    5,
    5,
    1,
    4,
    9,
    2,
    9,
    0,
    8,
    6,
    2,
    5,
    6,
    9,
    3,
    2,
    1,
    9,
    7,
    8,
    4,
    6,
    8,
    6,
    2,
    2,
    4,
    8,
    2,
    8,
    3,
    9,
    7,
    2,
    2,
    4,
    1,
    3,
    7,
    5,
    6,
    5,
    7,
    0,
    5,
    6,
    0,
    5,
    7,
    4,
    9,
    0,
    2,
    6,
    1,
    4,
    0,
    7,
    9,
    7,
    2,
    9,
    6,
    8,
    6,
    5,
    2,
    4,
    1,
    4,
    5,
    3,
    5,
    1,
    0,
    0,
    4,
    7,
    4,
    8,
    2,
    1,
    6,
    6,
    3,
    7,
    0,
    4,
    8,
    4,
    4,
    0,
    3,
    1,
    9,
    9,
    8,
    9,
    0,
    0,
    0,
    8,
    8,
    9,
    5,
    2,
    4,
    3,
    4,
    5,
    0,
    6,
    5,
    8,
    5,
    4,
    1,
    2,
    2,
    7,
    5,
    8,
    8,
    6,
    6,
    6,
    8,
    8,
    1,
    1,
    6,
    4,
    2,
    7,
    1,
    7,
    1,
    4,
    7,
    9,
    9,
    2,
    4,
    4,
    4,
    2,
    9,
    2,
    8,
    2,
    3,
    0,
    8,
    6,
    3,
    4,
    6,
    5,
    6,
    7,
    4,
    8,
    1,
    3,
    9,
    1,
    9,
    1,
    2,
    3,
    1,
    6,
    2,
    8,
    2,
    4,
    5,
    8,
    6,
    1,
    7,
    8,
    6,
    6,
    4,
    5,
    8,
    3,
    5,
    9,
    1,
    2,
    4,
    5,
    6,
    6,
    5,
    2,
    9,
    4,
    7,
    6,
    5,
    4,
    5,
    6,
    8,
    2,
    8,
    4,
    8,
    9,
    1,
    2,
    8,
    8,
    3,
    1,
    4,
    2,
    6,
    0,
    7,
    6,
    9,
    0,
    0,
    4,
    2,
    2,
    4,
    2,
    1,
    9,
    0,
    2,
    2,
    6,
    7,
    1,
    0,
    5,
    5,
    6,
    2,
    6,
    3,
    2,
    1,
    1,
    1,
    1,
    1,
    0,
    9,
    3,
    7,
    0,
    5,
    4,
    4,
    2,
    1,
    7,
    5,
    0,
    6,
    9,
    4,
    1,
    6,
    5,
    8,
    9,
    6,
    0,
    4,
    0,
    8,
    0,
    7,
    1,
    9,
    8,
    4,
    0,
    3,
    8,
    5,
    0,
    9,
    6,
    2,
    4,
    5,
    5,
    4,
    4,
    4,
    3,
    6,
    2,
    9,
    8,
    1,
    2,
    3,
    0,
    9,
    8,
    7,
    8,
    7,
    9,
    9,
    2,
    7,
    2,
    4,
    4,
    2,
    8,
    4,
    9,
    0,
    9,
    1,
    8,
    8,
    8,
    4,
    5,
    8,
    0,
    1,
    5,
    6,
    1,
    6,
    6,
    0,
    9,
    7,
    9,
    1,
    9,
    1,
    3,
    3,
    8,
    7,
    5,
    4,
    9,
    9,
    2,
    0,
    0,
    5,
    2,
    4,
    0,
    6,
    3,
    6,
    8,
    9,
    9,
    1,
    2,
    5,
    6,
    0,
    7,
    1,
    7,
    6,
    0,
    6,
    0,
    5,
    8,
    8,
    6,
    1,
    1,
    6,
    4,
    6,
    7,
    1,
    0,
    9,
    4,
    0,
    5,
    0,
    7,
    7,
    5,
    4,
    1,
    0,
    0,
    2,
    2,
    5,
    6,
    9,
    8,
    3,
    1,
    5,
    5,
    2,
    0,
    0,
    0,
    5,
    5,
    9,
    3,
    5,
    7,
    2,
    9,
    7,
    2,
    5,
    7,
    1,
    6,
    3,
    6,
    2,
    6,
    9,
    5,
    6,
    1,
    8,
    8,
    2,
    6,
    7,
    0,
    4,
    2,
    8,
    2,
    5,
    2,
    4,
    8,
    3,
    6,
    0,
    0,
    8,
    2,
    3,
    2,
    5,
    7,
    5,
    3,
    0,
    4,
    2,
    0,
    7,
    5,
    2,
    9,
    6,
    3,
    4,
    5,
    0
  ];

  let len = n;
  let prod = 1,
    max = 1;
  while (len < thousandDigits.length) {
    prod = 1;

    //Looping and computing products of n numbers
    for (let i = len - n; i < len; i++) {
      prod *= thousandDigits[i];
    }
    if (prod > max) max = prod;
    len++;
  }
  return max;
}

console.log(largestProductinaSeries(13));