notes/OJ notes/pages/Leetcode Check-If-It-Is-a-Straight-Line.md
2022-09-06 20:22:48 +08:00

87 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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:
##### 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
```