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 = coordinates00, y0 = coordinates01;

int x1 = coordinates10, y1 = coordinates11;

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

int i = 0;

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

{

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

if(deltaX * (coordinatesi1 - y0) != deltaY * (coordinatesi0 - x0))

{

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

}

}

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

}

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

相关推荐
Logic1018 分钟前
C语言/数据结构排序题解:三个数的最大乘积——排序后比较两种候选情况
c语言·数据结构·数组·排序·时间复杂度·算法题·负数处理
无忧.芙桃20 分钟前
位图妙用:512MB 实现 40 亿整数的存在性查询
c语言·c++·面试·哈希算法
听风若依38 分钟前
数据在内存中的存储-纸面笔记整理
c语言·笔记
朝朝辞暮i1 小时前
C++ 第 31C 课:Subscriber 到底是什么
开发语言·c++·算法
殷色玫瑰1 小时前
C++ string类详解:常用接口、字符串操作与模拟实现
java·linux·c语言·开发语言·数据结构·c++
Evand J1 小时前
【MATLAB例程】三维RRT+APF路径规划与AOA-TDOA融合定位算法。附代码的下载链接
算法·matlab·路径规划·rrt·tdoa·apf·aoa
Code_Solitude2 小时前
C语言:关于二维数组的作业总结
java·c语言·前端
海绵宝宝转agent2 小时前
leetCode100算法开源笔记分享
笔记·算法
写后端的胖头鱼3 小时前
时间复杂度 & 空间复杂度
java·数据结构·算法·时间复杂度·空间复杂度
hahaha60163 小时前
黑体轨迹和色温--光源白点
人工智能·嵌入式硬件·算法·计算机视觉