首页 > 其他分享 >【力扣刷题】1232.缀点成线

【力扣刷题】1232.缀点成线

时间:2024-09-20 12:49:47浏览次数:3  
标签:y2 int x1 成线 coordinates 力扣 x2 y1 缀点

题目:

给定一个数组 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

提示:

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

思路:

数学思维,两点式计算直线方程,换算成乘法计算。

代码:

class Solution {
public:
    bool checkStraightLine(vector<vector<int>> &coordinates) {
        //两点式:(y-y1)/(x-x1)=(y-y2)/(x-x2)  (直线过定点(x1,y1),(x2,y2))
        //换算乘法:(y-y1)*(x-x2)=(y-y2)*(x-x1)
        int X1=coordinates[1][0]-coordinates[0][0];
        int Y1=coordinates[1][1]-coordinates[0][1];
        for(int i=2;i<coordinates.size();i++)
        {
            int X2=coordinates[i][0]-coordinates[0][0];
            int Y2=coordinates[i][1]-coordinates[0][1];
            if(X1*Y2!=X2*Y1)  return false;
        }
        return true;
    }
};

 

标签:y2,int,x1,成线,coordinates,力扣,x2,y1,缀点
From: https://blog.csdn.net/m0_67763367/article/details/142357207

相关文章

  • 代码随想录算法训练营第十六天 | Javascript | 力扣Leetcode | 回溯 | 77. 组合、216.
    目录前言简介题目链接:77.组合题目链接:216.组合总和3题目链接:17.电话号码的字母组合前言踏平坎坷成大道,斗罢艰险又出发!自律的尽头是自控,自控的尽头是硬控。愿道友们披荆斩棘,终能得偿所愿。简介本人是小几年经验的前端开发,算法基础只有力扣几十道题,非常薄......
  • 代码随想录算法训练营第十五天 | Javascript | 继续二叉树的一天 | 力扣Leetcode | 补
    目录前言简介题目链接:501.二叉搜索树中的众数题目链接:236.二叉树的最近公共祖先题目链接:235.二叉搜索树的最近公共祖先前言踏平坎坷成大道,斗罢艰险又出发!自律的尽头是自控,自控的尽头是硬控。愿道友们披荆斩棘,终能得偿所愿。简介本人是小几年经验的前端开发,......
  • 力扣42 接雨水 Java版本
    文章目录题目描述代码1题目描述给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例1:输入:height=[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接......
  • 【数据结构与算法 | 灵神题单 | 自底向上DFS篇】力扣965, 2331, 100, 1379
    1.力扣965:单值二叉树1.1题目:如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。示例1:输入:[1,1,1,1,1,null,1]输出:true示例2:输入:[2,2,2,5,2]输出:false提示:给定树的节点数范围是 [1,......
  • 【数据结构与算法 | 灵神题单 | 自顶向下DFS篇】力扣1022,623
    1.力扣1022:从根到叶的二进制之和1.1题目:给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路径为 0->1->1->0->1,那么它表示二进制数 01101,也就是 13 。对树上的每一片叶子,我们都要找出......
  • 力扣第 415 场周赛
    3289.数字小镇中的捣蛋鬼数字小镇Digitville中,存在一个数字列表 nums,其中包含从 0 到 n-1 的整数。每个数字本应 只出现一次,然而,有 两个 顽皮的数字额外多出现了一次,使得列表变得比正常情况下更长。为了恢复Digitville的和平,作为小镇中的名侦探,请你找出这两个......
  • 力扣热题100 - 二叉树:二叉搜索树中第 K 小的元素
    题目描述:题号:230给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从1开始计数)。解题思路:思路一:中序遍历二叉树+ 计数根据二叉搜索树的性质,中序遍历得到的节点的顺序是从小到大递增的。所以可以一边中序遍历,一边计数......
  • 力扣热题100 - 二叉树:二叉树展开为链表
    题目描述:题号:114给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。解题思路:思路一:前序遍历后......
  • 力扣刷题(6)
    两数之和II-输入有序数组两数之和II-输入有序数组-力扣思路:因为该数组是非递减顺序排列,因此可以设两个左右下标当左右下标的数相加大于target时,则表示右下标的数字过大,因此将右下标--当左右下标的数相加小于target时,则表示左下标的数字过小,因此将左下标++当相......
  • 力扣136.只出现一次的数字
    题目描述:给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。解题思路:看到数组刚开始想的是排序后遍历,但是时间复杂度太高了......