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;//点、线都满足则共线

}

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

相关推荐
MATLAB代码顾问1 小时前
多种时间序列预测算法的MATLAB实现
开发语言·算法·matlab
71-32 小时前
C语言练习题——判断水仙花数(0-100000)
c语言·笔记·学习
高山上有一只小老虎2 小时前
字符串字符匹配
java·算法
jzhwolp3 小时前
从基本链表到侵入式链表,体会内核设计思路
c语言·后端·设计模式
愚润求学3 小时前
【动态规划】专题完结,题单汇总
算法·leetcode·动态规划
林太白3 小时前
跟着TRAE SOLO学习两大搜索
前端·算法
biter down4 小时前
c语言18:结构体位段联合体
c语言·开发语言
ghie90904 小时前
图像去雾算法详解与MATLAB实现
开发语言·算法·matlab
云泽8084 小时前
从三路快排到内省排序:探索工业级排序算法的演进
算法·排序算法
weixin_468466854 小时前
遗传算法求解TSP旅行商问题python代码实战
python·算法·算法优化·遗传算法·旅行商问题·智能优化·np问题