news 2026/2/26 6:59:56

力扣刷题:有效的正方形

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣刷题:有效的正方形

题目:
给定2D空间中四个点的坐标 p1, p2, p3 和 p4,如果这四个点构成一个正方形,则返回 true 。

点的坐标 pi 表示为 [xi, yi] 。 输入没有任何顺序 。

一个 有效的正方形 有四条等边和四个等角(90度角)。

示例 1:

输入: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1]
输出: true

示例 2:

输入:p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,12]
输出:false

示例 3:

输入:p1 = [1,0], p2 = [-1,0], p3 = [0,1], p4 = [0,-1]
输出:true

解析:
判断是不是正方形只需根据四条边是否相等,两条对角线是否相等即可

具体代码

/** * @param {number[]} p1 * @param {number[]} p2 * @param {number[]} p3 * @param {number[]} p4 * @return {boolean} */varvalidSquare=function(p1,p2,p3,p4){letset=newSet()functiongetLength(p1,p2){letx=p1[0]-p2[0]lety=p1[1]-p2[1]letres=x*x+y*y set.add(res)}getLength(p1,p2)getLength(p1,p3)getLength(p1,p4)getLength(p2,p3)getLength(p2,p4)getLength(p3,p4)letarr=Array.from(set)if(arr.length===2&&arr[0]!==0&&arr[1]!==0){returntrue}else{returnfalse}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/24 1:42:09

Open-AutoGLM实战技巧精讲(20年专家私藏笔记曝光)

第一章:Open-AutoGLM概述与核心价值Open-AutoGLM 是一个面向通用语言模型自动化推理的开源框架,旨在简化复杂任务的建模流程,提升大模型在实际业务场景中的可用性与效率。该框架通过抽象任务逻辑、封装调用接口,并引入动态规划机制…

作者头像 李华
网站建设 2026/2/23 10:25:36

22、重构:模式、方法与遗留代码处理

重构:模式、方法与遗留代码处理 1. 模式可作为重构目标 部分重构操作实际上是以其最终形成的模式命名的,例如“形成模板方法(Form Template Method)”和“用状态/策略替换类型代码(Replace Type Code with State/Strategy)”。模式代表着优秀设计的范例,而重构则是将现…

作者头像 李华
网站建设 2026/2/24 23:52:50

32、软件设计模式与有用幻觉原则解析

软件设计模式与有用幻觉原则解析 在软件开发领域,设计模式和对软件本质的理解至关重要。下面将深入探讨单例模式、策略模式、模板方法模式以及有用幻觉原则。 单例模式 单例模式是一种常见的设计模式,在典型的单例模式中, returnInstance() 方法通常无需额外操作,但它…

作者头像 李华
网站建设 2026/2/24 6:32:10

26、软件开发中的测试、模式与设计实践

软件开发中的测试、模式与设计实践 1. 单元测试与设计测试性 单元测试是软件开发中的一项重要实践,而测试驱动开发则是近年来新加入的实践方式。当我们对某个情况的清晰度较低时,可以依靠它。测试能帮助我们解决很多问题,下面通过两个问题来探讨测试方面的问题: 1.1 Sig…

作者头像 李华
网站建设 2026/2/23 15:15:04

微信小程序 垃圾分类知识科普系统

文章目录具体实现截图主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!具体实现截图 本系统(程序源码数据库调试部署讲解)带文档1万…

作者头像 李华