diff --git a/OJ notes/pages/Leetcode Check-If-It-Is-a-Straight-Line.md b/OJ notes/pages/Leetcode Check-If-It-Is-a-Straight-Line.md new file mode 100644 index 0000000..9973f3f --- /dev/null +++ b/OJ notes/pages/Leetcode Check-If-It-Is-a-Straight-Line.md @@ -0,0 +1,79 @@ +# Leetcode Check-If-It-Is-a-Straight-Line + +#### 2022-07-27 11:38 + +> ##### Algorithms: +> #algorithm #math +> ##### Difficulty: +> #coding_problem #difficulty-easy +> ##### Additional tags: +> #leetcode +> ##### Revisions: +> N/A + +##### Related topics: +```expander +tag:#math +``` + + + +##### Links: +- [Link to problem](https://leetcode.com/problems/check-if-it-is-a-straight-line/) +___ +### Problem + +You are given an array `coordinates`, `coordinates[i] = [x, y]`, where `[x, y]` represents the coordinate of a point. Check if these points make a straight line in the XY plane. + +#### Examples + +**Example 1:** + +![](https://assets.leetcode.com/uploads/2019/10/15/untitled-diagram-2.jpg) + +``` +**Input:** coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]] +**Output:** true +``` + +**Example 2:** + +**![](https://assets.leetcode.com/uploads/2019/10/09/untitled-diagram-1.jpg)** + +``` +**Input:** coordinates = [[1,1],[2,2],[3,4],[4,5],[5,6],[7,7]] +**Output:** false +``` + +#### Constraints + +### Thoughts + +> [!summary] +> This is a #math problem. + +Many math problems can be simplified by: + +- work out the expression +- Simplify it. + +This is also true in this problem. + +We want to calculate the k for every consecutive points, if they are the same, they are on one straight line. + +By starting from the first, using them as the base k: +``` +k = (dx0 - dx1) / (dy0 - dy1) = (dx - dx') / (dy - dy') +| +v +dx*yi - dy*xi = dx*y0 - dy*x0 +``` + +Which is the cross product of these two points. + +### Solution + +==#TODO: Fill this out== +```cpp +WIP +``` \ No newline at end of file