题目描述

在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。

请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false。

示例

示例 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

提示

2 <= coordinates.length <= 1000
coordinates[i].length == 2
-10^4 <= coordinates[i][0], coordinates[i][1] <= 10^4
coordinates 中不含重复的点

解题思路

使用dy/dx计算斜率,验证其他点是否在直线上,思路简单
注意细节:斜率为浮点数,b为浮点数,以及验证时的强制类型转换
不要忘记斜率不存在的情况

代码

bool checkStraightLine(int** coordinates, int coordinatesSize, int* coordinatesColSize){if(coordinatesSize>=2){double k=0;int dy=coordinates[coordinatesSize-1][1]-coordinates[0][1];int dx=coordinates[coordinatesSize-1][0]-coordinates[0][0];if(dx!=0){k=(double)dy/dx;double b=(double)coordinates[0][1]-k*coordinates[0][0];for(int i=1;i<coordinatesSize-1;i++){if(k*(double)coordinates[i][0]+b!=(double)coordinates[i][1])return false;}return true;}else {for(int i=1;i<=coordinatesSize-2;i++){if(coordinates[i][0]!=coordinates[0][0])return false;}return true;}}else return false;}

链接

力扣1232.缀点成线相关推荐

  1. leetcode 1232. 缀点成线

    在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x.纵坐标为 y 的点. 请你来判断,这些 ...

  2. 【leetcode】1232. 缀点成线(check-if-it-is-a-straight-line)(数学)[简单]

    链接 https://leetcode-cn.com/problems/check-if-it-is-a-straight-line/ 耗时 解题:21 min 题解:11 min 题意 在一个 XY ...

  3. Leetcode-数学题-1232. 缀点成线

    题目: 题解: 斜率一致即可 代码: class Solution {public boolean checkStraightLine(int[][] coordinates) {int deltaX ...

  4. 浅谈 缀点成线 问题

    缀点成线 问题: 在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x.纵坐标为 y 的点. ...

  5. ​力扣解法汇总1374-生成每种字符都是奇数个的字符串

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接: 力扣 ...

  6. 力扣(LeetCode)904. 水果成篮(C语言)

    一.环境说明 本文是 LeetCode 904题 : 水果成篮,使用c语言实现 滑动窗口+哈希集合. 测试环境:Visual Studio 2019 二.代码展示 //滑动窗口+哈希表,一次遍历O(n ...

  7. 缀点成线(Java算法每日一题)斜率公式

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

  8. 可爱宝宝力扣刷题集目录

    总述 编程菜鸟一枚!2020年7月,我仍然还是一个几乎不会码代码的菜鸟,(好多小伙伴应该从本科入学就开始了吧.哎,捂脸并逃走),不过从今年4月底刷了有一个多月,狂刷了300多倒(截止2020.6,8) ...

  9. 儿童专注力测试之连点成线

    儿童 儿童专注力测试1 连点成线图片 儿童专注力测试1 标题

最新文章

  1. 超实用总结:AI实践者需要用到的10个深度学习方法
  2. java实现窗口透明_java实现窗口透明
  3. Python 库兼容性问题-fromstring() has been removed. Please call frombytes() instead.原因及解决办法
  4. 一个仿沙漏效果的自定义view(贝瑟尔曲线实现)
  5. JTextField类(单行文本框)/JPasswordFiel(密码框)/JTextArea(多行文本框)常用方法
  6. CSS知识点整理(2):框模型,定位
  7. 什么是ip地址、子网掩码、网关和DNS?
  8. [shell基础]——uniq命令
  9. 防止开源的加拉帕戈斯综合症,系统软件和开源都是手段不是目的
  10. 图灵专栏微信小程序上线
  11. 微软官方 Windows 10 更新安装失败的解决办法
  12. 一个有情怀的PPT模板下载网站
  13. Netflix-Eureka服务注册与发现说明文档
  14. How to cover an IE windowed control (Select Box, ActiveX Object, etc.) with a DHTML layer.
  15. 求助一维光子晶体的FDTD代码!万分感谢
  16. 【官方文档】Fluent Bit 安装在 Linux
  17. 首个智能制造领域5G专网建成:广东联通+格力+华为共同打造!
  18. linux取消上一个命令,Linux简介及最常用命令(简单易学,但能解决95%以上的问题)...
  19. python二进制和图片转换
  20. 使用Android SwipeRefreshLayout了解Android的嵌套滑动机制

热门文章

  1. 实验四 lr0分析程序的设计与实现_试验机海外直播丨实现高精度CAE分析实验的材料评价案例技术介绍...
  2. linux 下搭建subversion (svn),CentOS Linux 搭建 SVN(CollabNet Subversion)服务器,易用性和对远程团队的...
  3. 分布式 基本理论 BASE
  4. Vue.js-资料-组件化思想 —上
  5. Javascript自定义类
  6. Fedora 8安装非官方compiz-fusion
  7. 让数据库操作变成非阻塞的
  8. 自己用as3实现的以多边形等几何模型为基础的碰撞系统 - 例子A
  9. (18)ISE14.7调试核名称与顶层名称不一致导致生成bit报error(FPGA不积跬步101)
  10. (31)FPGA原语设计(IBUFG)