力扣1232.缀点成线
题目描述
在一个 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.缀点成线相关推荐
- leetcode 1232. 缀点成线
在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x.纵坐标为 y 的点. 请你来判断,这些 ...
- 【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 ...
- Leetcode-数学题-1232. 缀点成线
题目: 题解: 斜率一致即可 代码: class Solution {public boolean checkStraightLine(int[][] coordinates) {int deltaX ...
- 浅谈 缀点成线 问题
缀点成线 问题: 在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x.纵坐标为 y 的点. ...
- 力扣解法汇总1374-生成每种字符都是奇数个的字符串
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接: 力扣 ...
- 力扣(LeetCode)904. 水果成篮(C语言)
一.环境说明 本文是 LeetCode 904题 : 水果成篮,使用c语言实现 滑动窗口+哈希集合. 测试环境:Visual Studio 2019 二.代码展示 //滑动窗口+哈希表,一次遍历O(n ...
- 缀点成线(Java算法每日一题)斜率公式
问: 给定一个数组 coordinates ,其中 coordinates[i] = [x, y] , [x, y] 表示横坐标为 x.纵坐标为 y 的点.请你来判断,这些点是否在该坐标系中属于同一条 ...
- 可爱宝宝力扣刷题集目录
总述 编程菜鸟一枚!2020年7月,我仍然还是一个几乎不会码代码的菜鸟,(好多小伙伴应该从本科入学就开始了吧.哎,捂脸并逃走),不过从今年4月底刷了有一个多月,狂刷了300多倒(截止2020.6,8) ...
- 儿童专注力测试之连点成线
儿童 儿童专注力测试1 连点成线图片 儿童专注力测试1 标题
最新文章
- 超实用总结:AI实践者需要用到的10个深度学习方法
- java实现窗口透明_java实现窗口透明
- Python 库兼容性问题-fromstring() has been removed. Please call frombytes() instead.原因及解决办法
- 一个仿沙漏效果的自定义view(贝瑟尔曲线实现)
- JTextField类(单行文本框)/JPasswordFiel(密码框)/JTextArea(多行文本框)常用方法
- CSS知识点整理(2):框模型,定位
- 什么是ip地址、子网掩码、网关和DNS?
- [shell基础]——uniq命令
- 防止开源的加拉帕戈斯综合症,系统软件和开源都是手段不是目的
- 图灵专栏微信小程序上线
- 微软官方 Windows 10 更新安装失败的解决办法
- 一个有情怀的PPT模板下载网站
- Netflix-Eureka服务注册与发现说明文档
- How to cover an IE windowed control (Select Box, ActiveX Object, etc.) with a DHTML layer.
- 求助一维光子晶体的FDTD代码!万分感谢
- 【官方文档】Fluent Bit 安装在 Linux
- 首个智能制造领域5G专网建成:广东联通+格力+华为共同打造!
- linux取消上一个命令,Linux简介及最常用命令(简单易学,但能解决95%以上的问题)...
- python二进制和图片转换
- 使用Android SwipeRefreshLayout了解Android的嵌套滑动机制
热门文章
- 实验四 lr0分析程序的设计与实现_试验机海外直播丨实现高精度CAE分析实验的材料评价案例技术介绍...
- linux 下搭建subversion (svn),CentOS Linux 搭建 SVN(CollabNet Subversion)服务器,易用性和对远程团队的...
- 分布式 基本理论 BASE
- Vue.js-资料-组件化思想 —上
- Javascript自定义类
- Fedora 8安装非官方compiz-fusion
- 让数据库操作变成非阻塞的
- 自己用as3实现的以多边形等几何模型为基础的碰撞系统 - 例子A
- (18)ISE14.7调试核名称与顶层名称不一致导致生成bit报error(FPGA不积跬步101)
- (31)FPGA原语设计(IBUFG)