vault backup: 2022-08-07 13:33:39
This commit is contained in:
parent
2ffb472c57
commit
83f19fcb39
79
OJ notes/pages/Leetcode Check-If-It-Is-a-Straight-Line.md
Normal file
79
OJ notes/pages/Leetcode Check-If-It-Is-a-Straight-Line.md
Normal file
|
@ -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
|
||||
```
|
Loading…
Reference in a new issue