当前位置:网站首页>力扣 593. 有效的正方形
力扣 593. 有效的正方形
2022-07-31 07:22:00 【冷酷的摸鱼小将】
题目
给定2D空间中四个点的坐标 p1, p2, p3 和 p4,如果这四个点构成一个正方形,则返回 true 。
点的坐标 pi 表示为 [xi, yi] 。输入 不是 按任何顺序给出的。
一个 有效的正方形 有四条等边和四个等角(90度角)。
示例
输入: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1]
输出: True
输入:p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,12]
输出:false
输入:p1 = [1,0], p2 = [-1,0], p3 = [0,1], p4 = [0,-1]
输出:true
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/valid-square
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
方法1:模拟
Java实现
class Solution {
long len = -1;
public boolean validSquare(int[] p1, int[] p2, int[] p3, int[] p4) {
return calsc(p1, p2, p3) && calsc(p1, p2, p4) && calsc(p2, p3, p4) && calsc(p1, p3, p4);
}
public boolean calsc(int[] a, int[] b, int[] c) {
boolean ok = false;
//计算两点距离的平方
long l1 = (a[1] - b[1]) * (a[1] - b[1]) + (a[0] - b[0]) * (a[0] - b[0]);
long l2 = (a[1] - c[1]) * (a[1] - c[1]) + (a[0] - c[0]) * (a[0] - c[0]);
long l3 = (c[1] - b[1]) * (c[1] - b[1]) + (c[0] - b[0]) * (c[0] - b[0]);
//判断是否构成直角三角形
if ((l1 == l2 && l1 + l2 == l3) || (l1 == l3 && l1 + l3 == l2) || (l2 == l3 && l2 + l3 == l1)) {
ok = true;
}
if (!ok) return false;
if (len == -1) len = Math.min(l1, l2);
else if (len == 0 || len != Math.min(l1, l2)) return false;
return true;
}
}
边栏推荐
猜你喜欢
The first part of the R language
Fund investment advisory business
安装部署KubeSphere管理kubernetes
使用PageHelper实现分页查询(详细)
"C language game" entry-level chess game (robot enhanced version)
Financial leasing business
Super detailed mysql database installation guide
2022.07.20_Daily Question
Leetcode952. 按公因数计算最大组件大小
2022.07.14_每日一题
随机推荐
基于交替迭代法的交直流混合系统潮流计算matlab程序iEEE9节点系统算例
Titanic 预测问题
进程和线程的区别&&run和start区别与联系
[PSQL] 复杂查询
48页智慧城市规划蓝图 解决方案
【Objective-C语言中的@property】
《C语言小游戏》扫雷
【愚公系列】2022年07月 Go教学课程 022-Go容器之字典
Open Source | Commodity Recognition Recommender System
The Spark run on Yarn Spark application
ros小乌龟画图
2704:寻找平面上的极大点
bcos简介及自序
Super detailed mysql database installation guide
个人报错问题 持续总结
中断及pendSV
电脑开机密码怎么设置?如何给你的电脑加上“安全锁”
Jetpack Compose学习(8)——State及remeber
2022.07.24_Daily Question
sort函数(快速排列)的使用方法