dengxinyi 6 年之前
父节点
当前提交
7c801b8737
共有 1 个文件被更改,包括 23 次插入0 次删除
  1. 23 0
      medium/593.valid-square.go

+ 23 - 0
medium/593.valid-square.go

@@ -0,0 +1,23 @@
+func validSquare(p1 []int, p2 []int, p3 []int, p4 []int) bool {
+	seg := make(map[int]int)
+	seg[dist2(p1, p2)]++
+	seg[dist2(p1, p3)]++
+	seg[dist2(p1, p4)]++
+	seg[dist2(p2, p3)]++
+	seg[dist2(p2, p4)]++
+	seg[dist2(p3, p4)]++
+	if len(seg) != 2 {
+		return false
+	}
+	for _, v := range seg {
+		if v&1 == 1 {
+			return false
+		}
+	}
+	return true
+}
+
+func dist2(p1, p2 []int) int {
+	dx, dy := p1[0]-p2[0], p1[1]-p2[1]
+	return dx*dx + dy*dy
+}