/
buysell.js
43 lines (38 loc) · 958 Bytes
/
buysell.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function bruteforce(prices) {
let buy = 0;
let sell = 0;
let bestProfit = 0;
const numPrices = prices.length;
for(let i = 0; i < numPrices; i++) {
for (let j = i + 1; j < numPrices; j++) {
let profit = prices[j] - prices[i];
if (bestProfit < profit) {
buy = i;
sell = j;
bestProfit = profit;
}
}
}
return [buy, sell];
}
function dynamic(prices) {
let buy = 0;
let sell = 0;
let min = 0;
let bestProfit = 0;
for(let i = 1; i < prices.length; i++) {
if (prices[i] < prices[min]) {
min = i;
}
else if (prices[i] - prices[min] > bestProfit) {
buy = min;
sell = i;
bestProfit = prices[i] - prices[min];
}
}
return [buy, sell];
}
module.exports = {
dynamic,
bruteforce
}