LeetCode 593. 有效的正方形(数学)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 593. 有效的正方形(数学)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給定二維空間中四點的坐標,返回四點是否可以構造一個正方形。
一個點的坐標(x,y)由一個有兩個整數的整數數組表示。
示例: 輸入: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1] 輸出: True注意: 所有輸入整數都在 [-10000,10000] 范圍內。 一個有效的正方形有四個等長的正長和四個等角(90度角)。 輸入點沒有順序。來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/valid-square
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 4個點可以組成6條邊,最長的兩條是對角線
- 排序后,前4條邊相等,后2條邊對角線相等
0 ms 26.6 MB
class Solution:# py3def validSquare(self, p1: List[int], p2: List[int], p3: List[int], p4: List[int]) -> bool:p = [p1,p2,p3,p4]d = []s = set(tuple(pi) for pi in p)if len(s) < 4:return Falsedef dis(a,b,c,d):return (a-c)**2+(b-d)**2for i in range(3):for j in range(i+1, 4):d.append(dis(p[i][0],p[i][1],p[j][0],p[j][1]))d = sorted(d)return d[0]==d[1] and d[1]==d[2] and d[2]==d[3] and d[4]==d[5]48 ms 13.8 MB
總結
以上是生活随笔為你收集整理的LeetCode 593. 有效的正方形(数学)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员面试金典 - 面试题 08.13.
- 下一篇: LeetCode 712. 两个字符串的