593. Valid Square
来源:互联网 发布:苹果cms整合ck播放器 编辑:程序博客网 时间:2024/06/03 01:42
Given the coordinates of four points in 2D space, return whether the four points could construct a square.
The coordinate (x,y) of a point is represented by an integer array with two integers.
Example:
Input: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1]Output: True
Note:
- All the input integers are in the range [-10000, 10000].
- A valid square has four equal sides with positive length and four equal angles (90-degree angles).
- Input points have no order.
Subscribe to see which companies asked this question.
public class Solution { public boolean validSquare(int[] p1, int[] p2, int[] p3, int[] p4) { int[] a = helper(p1, p2, p3, p4);int[] b = helper(p2, p1, p3, p4);int[] c = helper(p3, p2, p1, p4);return check(a, b) && check(a, c); } private int[] helper(int[] p, int[] p1, int[] p2, int[] p3) {int[] re = new int[3];re[0] = (p[0] - p1[0]) * (p[0] - p1[0]) + (p[1] - p1[1]) * (p[1] - p1[1]);re[1] = (p[0] - p2[0]) * (p[0] - p2[0]) + (p[1] - p2[1]) * (p[1] - p2[1]);re[2] = (p[0] - p3[0]) * (p[0] - p3[0]) + (p[1] - p3[1]) * (p[1] - p3[1]);Arrays.sort(re);return re;}private boolean check(int[] a, int[] b) {boolean flag = true;for (int i = 0; i < 3; ++i) {if (a[i] != b[i]) {flag = false;break;}}return flag && a[0] + a[1] == a[2] && a[0] == a[1] && a[2] != 0;}}
class Solution: def validSquare(self, p1, p2, p3, p4): a=[(p[0]-p1[0])**2+(p[1]-p1[1])**2 for p in (p2,p3,p4)] b=[(p[0]-p2[0])**2+(p[1]-p2[1])**2 for p in (p1,p3,p4)] c=[(p[0]-p3[0])**2+(p[1]-p3[1])**2 for p in (p1,p2,p4)] a=sorted(a) b=sorted(b) c=sorted(c) f=lambda a,b:a[0]+a[1]==a[2] and a[0]==a[1] and a==b and a[2] return bool(f(a,b) and f(a,c))
阅读全文
0 0
- 593. Valid Square
- 593. Valid Square
- [leetcode]593. Valid Square
- 593. Valid Square
- 593. Valid Square
- leetcode 593. Valid Square
- Leetcode 593. Valid Square
- Valid Square
- Valid Square
- leetcode 593. Valid Square 正方形的判定
- 141.Valid Perfect Square
- 367. Valid Perfect Square
- LeetCode:Valid Perfect Square
- 【Leetcode】valid perfect square
- [leetcode] Valid Perfect Square
- 367. Valid Perfect Square
- leetcode367. Valid Perfect Square
- 367. Valid Perfect Square
- 安装Centos6.5
- okhttp上传文件时携带参数
- MediaCodec问题汇总
- MDI——单例模式
- kotlin学习笔记(四)
- 593. Valid Square
- 如何区分360浏览器和谷歌浏览器
- 关于PopupWindow点击不同按钮显示不同pop的解决
- 创建数据库 表 序列
- java中判断素数的六种方法
- Javascript let解析
- Android中的IPC之使用Bundle
- 数组的全排列
- 使用OC加载图片的两种方式及其区别