notes/OJ notes/pages/Leetcode Check-If-It-Is-a-Straight-Line.md
2022-09-03 15:41:36 +08:00

1.5 KiB

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


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:

**Input:** coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]
**Output:** true

Example 2:

**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==

WIP