Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >leetcode之缀点成线

leetcode之缀点成线

原创
作者头像
code4it
修改于 2020-11-18 03:43:55
修改于 2020-11-18 03:43:55
29200
代码可运行
举报
文章被收录于专栏:码匠的流水账码匠的流水账
运行总次数:0
代码可运行

本文主要记录一下leetcode之缀点成线

题目

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
在一个 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 中不含重复的点

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/check-if-it-is-a-straight-line
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
    public boolean checkStraightLine(int[][] coordinates) {
        if (coordinates.length == 2) {
            return true;
        }
        int x1 = coordinates[0][0];
        int y1 = coordinates[0][1];
        int x2 = coordinates[1][0];
        int y2 = coordinates[1][1];
        for(int i=2; i< coordinates.length; i++) {
            int x = coordinates[i][0];
            int y = coordinates[i][1];
            if ((x-x1)*(y2-y1) != (y-y1)*(x2-x1)) {
                return false;
            }
        }
        return true;
    }
}

小结

这里利用斜率公式来判断两个坐标是否在同一直线上。

doc

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Leetcode:缀点成线
在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。
Liusy
2021/02/01
3500
LeetCode 1232. 缀点成线
在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。
Michael阿明
2020/07/13
3370
LeetCode 1232. 缀点成线
leetcode - 缀点成线
在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。
江涛学编程
2021/01/28
3560
leetcode - 缀点成线
「前端动画数学与物理基础」点和直线
如果你想制作一款酷炫的动画效果或者做一款h5的小游戏,但又不知道如何入手?动画怎么知道一个物体放到何处的?它又是怎么让物体移动的?等等类似的问题,解决这些问题,都少不了数学与物理基础,从本系列文章起,笔者将介绍一些基础的数学与物理知识,希望对你有所帮助。
前端达人
2019/07/09
1.1K0
「前端动画数学与物理基础」点和直线
2020安徽程序设计省赛 I美丽几何
在平面上有n 个点,初始每个点的美丽值都为0,任意选择两个点组成一条直线,对于每一条直线,如果存在一个点,这个点到这条直线的距离小于其他n-3 个点到这条直线的距离,那么我们把这个点的美丽值加1。为了简化输出,我们只需要输出所有点的美丽值的异或值,保证三点不共线。
程序员小涛
2021/12/06
6020
​LeetCode刷题实战469:凸多边形
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/12/17
4810
​LeetCode刷题实战469:凸多边形
LeetCode 1222. 可以攻击国王的皇后(set)
「黑皇后」在棋盘上的位置分布用整数坐标数组 queens 表示,「白国王」的坐标用数组 king 表示。
Michael阿明
2020/07/13
3820
LeetCode 1222. 可以攻击国王的皇后(set)
java 计算坐标点距离,平行线交点算法详解
由于程序中的坐标原点,都是左上角开始的。所以很少涉及象限的问题。以下的一些算法,不会强调象限问题。
zinyan.com
2023/07/14
9560
java 计算坐标点距离,平行线交点算法详解
力扣(LeetCode)刷题,简单题(第25期)
力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。
不脱发的程序猿
2021/01/20
2750
C++ OpenCV透视变换改进---直线拟合的应用
前一篇《C++ OpenCV透视变换综合练习》中针对透视变换做了一个小练习,上篇中我们用多边形拟合的点集来计算离最小旋转矩形最近的点来定义为透视变换的点,效果是有,无意间又想了一个新的思路,在原来的点的基础上效果会更好一点,其中就用到了直线拟合的方法,今天这篇就说一下优化的思路及直线拟合的函数。
Vaccae
2021/01/20
1.5K0
C++ OpenCV透视变换改进---直线拟合的应用
算法细节系列(18):凸包的三种计算
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014688145/article/details/72200018
用户1147447
2019/05/26
1.4K0
Python 实现简单的导弹自动追踪
自动追踪算法,在我们设计2D射击类游戏时经常会用到,这个听起来很高大上的东西,其实也并不是军事学的专利,在数学上解决的话需要去解微分方程,
IT派
2018/07/30
1.5K0
Python 实现简单的导弹自动追踪
Leetcode No.149 直线上最多的点数
给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。
week
2022/01/06
2250
Leetcode 第23场双周赛C 5361. 圆和矩形是否有重叠 (计算几何 初中数学)
给你一个以 (radius, x_center, y_center) 表示的圆和一个与坐标轴平行的矩形 (x1, y1, x2, y2),其中 (x1, y1) 是矩形左下角的坐标,(x2, y2) 是右上角的坐标。
glm233
2020/09/28
6730
Leetcode 第23场双周赛C 5361. 圆和矩形是否有重叠 (计算几何 初中数学)
​LeetCode刷题实战452:用最少数量的箭引爆气球
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/12/06
3760
编程求取直线一般式表达式,两直线交点
背景介绍   最近在水面无人艇(USV)模拟仿真中,用到了一些点和线的关系求解,本文主要讲述一下两点确认直线,点到直线距离,两条直线的交点等问题的解决方法,并给出python程序。部分内容非原创,文中给出链接,需要者可以参考。   博客更新可参见github点线关系 两点确定直线 表达式定义   空间直线的表达式有多种,比如一般式Ax+By+C=0、点斜式y-y0=k(x-x0)、截距式x/a+y/b=1、两点式:(y-y1)/(y1-y2)=(x-x1)/(x1-x2)等,它们具有彼此的约束条件,如下所
waylon
2018/03/08
5.1K0
编程求取直线一般式表达式,两直线交点
LeetCode 1453. 圆形靶内的最大飞镖数量(几何题)
1. 题目 墙壁上挂着一个圆形的飞镖靶。现在请你蒙着眼睛向靶上投掷飞镖。 投掷到墙上的飞镖用二维平面上的点坐标数组表示。飞镖靶的半径为 r 。 请返回能够落在 任意 半径为 r 的圆形靶内或靶上的最大
Michael阿明
2020/07/13
6660
LeetCode 1453. 圆形靶内的最大飞镖数量(几何题)
LeetCode 1779. 找到最近的有相同 X 或 Y 坐标的点
给你两个整数 x 和 y ,表示你在一个笛卡尔坐标系下的 (x, y) 处。 同时,在同一个坐标系下给你一个数组 points ,其中 points[i] = [ai, bi] 表示在 (ai, bi) 处有一个点。 当一个点与你所在的位置有相同的 x 坐标 或者 相同的 y 坐标时,我们称这个点是 有效的 。
Michael阿明
2021/09/06
1.1K0
LeetCode 391. 完美矩形(set检查顶点+面积检查)
我们有 N 个与坐标轴对齐的矩形, 其中 N > 0, 判断它们是否能精确地覆盖一个矩形区域。
Michael阿明
2020/07/13
5920
LeetCode 391. 完美矩形(set检查顶点+面积检查)
[随缘一题]雷达监测
一个2D平面上有一堆雷达(雷达有x, y坐标,以及能探测到的范围r半径)。现在有一辆小车要从y = 0和y = 1的区间里面通过并且不能被雷达探测到。若被检测到,输出YES,否则输出NO。(可以认为,小车是一条长度为1的线段,沿直线从x = 0 向右前进)
呼延十
2019/07/01
1.4K0
相关推荐
Leetcode:缀点成线
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验