LeetCode每日一题——缀点成线

题目要求:

给定一个整数数组 coordinates ,其中 coordinates[i] = [x, y][x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上。

示例 1:

复制代码
输入:coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]
输出:true

示例 2:

复制代码
输入:coordinates = [[1,1],[2,2],[3,4],[4,5],[5,6],[7,7]]
输出:false

代码实现:

bool checkStraightLine(int** coordinates, int coordinatesSize, int* coordinatesColSize) {

//若点数小于或等于2则一定共线

if(coordinatesSize <= 2)

{

return true;

}

//建立基准

int x0 = coordinates[0][0], y0 = coordinates[0][1];

int x1 = coordinates[1][0], y1 = coordinates[1][1];

int deltaX = x1 - x0, deltaY = y1 - y0;

int i = 0;

for(i = 2; i < coordinatesSize; i++)

{

//用交叉相乘是否相等来判断是否共线

if(deltaX * (coordinates[i][1] - y0) != deltaY * (coordinates[i][0] - x0))

{

return false;//只要有一点不共线,结果都不相等

}

}

return true;//点、线都满足则共线

}

坚持编程,我一直在路上!

相关推荐
busideyang29 分钟前
为什么推挽输出不能接收串口数据,而准双向口可以?
c语言·stm32·单片机·嵌入式硬件·嵌入式
炸膛坦客34 分钟前
单片机/C/C++八股:(二十)指针常量和常量指针
c语言·开发语言·c++
爱编码的小八嘎36 分钟前
C语言完美演绎4-8
c语言
I_LPL1 小时前
hot100贪心专题
数据结构·算法·leetcode·贪心
颜酱1 小时前
DFS 岛屿系列题全解析
javascript·后端·算法
WolfGang0073212 小时前
代码随想录算法训练营 Day16 | 二叉树 part06
算法
炸膛坦客2 小时前
单片机/C/C++八股:(十九)栈和堆的区别?
c语言·开发语言·c++
2401_831824963 小时前
代码性能剖析工具
开发语言·c++·算法
weixin_426689203 小时前
vscode C语言编译环境搭建(单个文件)
c语言·ide·vscode
Sunshine for you4 小时前
C++中的职责链模式实战
开发语言·c++·算法