1232.缀点成线(Java)

题目描述:

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

输入:

coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]

输出:

true

代码实现:

java 复制代码
//缀点成线
public class Main{
    public static void main(String[] args) {
        int[][] coordinates = new int[][]{{1, 2}, {2, 3}, {3, 4}, {4, 5}, {5, 6}, {6, 7}};
        System.out.println(checkStraightLine(coordinates));//true
    }

    public static boolean checkStraightLine(int[][] coordinates) {
        //设:A*X + B*Y = 0;
        //将方程平移过零点
        for (int i = 1; i < coordinates.length; i++) {
            coordinates[i][0] -= coordinates[0][0];
            coordinates[i][1] -= coordinates[0][1];
        }
        //归零
        coordinates[0][0] = 0;
        coordinates[0][1] = 0;
        //计算参数
        int a = coordinates[1][1];
        int b = -coordinates[1][0];
        //判断剩下的点是否在该直线上
        for (int i = 2; i < coordinates.length; i++) {
            int[] temp = coordinates[i];//点
            int x = temp[0];//横坐标
            int y = temp[1];//纵坐标
            if (a * x + b * y != 0) {
                //如果有任意一点不满足方程:则返回结果假
                return false;
            }
        }
        //循环结束之后,则表示都满足方程:则返回真
        return true;
    }
}
相关推荐
odoo中国11 小时前
Odoo 19 模块结构概述
开发语言·python·module·odoo·核心组件·py文件按
C***115012 小时前
Spring aop 五种通知类型
java·前端·spring
BD_Marathon12 小时前
SpringBoot——多环境开发配置
java·spring boot·后端
代码N年归来仍是新手村成员12 小时前
【Java转Go】即时通信系统代码分析(一)基础Server 构建
java·开发语言·golang
Z1Jxxx13 小时前
01序列01序列
开发语言·c++·算法
沐知全栈开发13 小时前
C语言中的强制类型转换
开发语言
关于不上作者榜就原神启动那件事13 小时前
Java中大量数据Excel导入导出的实现方案
java·开发语言·excel
坚定学代码13 小时前
基于观察者模式的ISO C++信号槽实现
开发语言·c++·观察者模式·ai
Wang's Blog13 小时前
Nodejs-HardCore: Buffer操作、Base64编码与zlib压缩实战
开发语言·nodejs
Coder_Boy_14 小时前
基于SpringAI的在线考试系统设计总案-知识点管理模块详细设计
android·java·javascript