Skip to content

Commit 6561890

Browse files
authored
Create minimum-lines-to-represent-a-line-chart.cpp
1 parent 42c50ba commit 6561890

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Time: O(nlogn)
2+
// Space: O(1)
3+
4+
// sort, math, gcd
5+
class Solution {
6+
public:
7+
int minimumLines(vector<vector<int>>& stockPrices) {
8+
int result =0;
9+
sort(begin(stockPrices), end(stockPrices));
10+
vector<int> prev;
11+
for (int i = 1; i < size(stockPrices); ++i) {
12+
const int dy = stockPrices[i][1] - stockPrices[i - 1][1];
13+
const int dx = stockPrices[i][0] - stockPrices[i - 1][0];
14+
const int g = gcd(dy, dx);
15+
if (empty(prev) || prev != vector<int>({dy / g, dx / g})) {
16+
prev = {dy / g, dx / g};
17+
++result;
18+
}
19+
}
20+
return result;
21+
}
22+
};

0 commit comments

Comments
 (0)