Files

1052 lines
8.0 KiB
Markdown
Raw Normal View History

---
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
<details><summary>Solution 1 (Click to Show/Hide)</summary>
```js
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));
```
#### Relevant Links
- [Sliding Window Technique](https://www.geeksforgeeks.org/window-sliding-technique/)
</details>