专栏 | 九章算法
网址 | www.jiuzhang.com
题目描述
给定二维平面内的四个点,判断这四个点是否能组成正方形。坐标(x,y)为整数。
输入的整数范围为 [-10000, 10000]。
样例
输入:
p1=[0,0],p2=[1,1],p3=[1,0],p4=[0,1]
输出:
Ture
说明:
[0,0],[1,1],[0,1],[1,0]四个点能够组成正方形。
解题思路分析
题目要求我们判断四个点能否组成正方形,那么正方形有哪些特征呢。我们容易想到,正方形四条边长度都相等,并且两条对角线长度也相等,所以,我们只要求出这四个点两两之间的距离,进行从小到大排序之后,如果这四个点能构成正方形,那么前面四个数就是四条边长的长度,后面两个数为两条对角线的长度,因此我们只需要判断前四个数以及后两个数它们是否相等即可。
这题为避免四个点重叠,因此我们还需要判断一下对角线长度是否大于边长即可。
参考程序
面试官角度分析
本题较为简单,解法多样,只要能根据正方形特征判断出是否为正方形,即可获得hire评价
lintcode相关问题
推荐阅读
- 12 个 tips 教你搞定 onsite!
- 25 个 questions, 教你向面试官提问!
- 10 个 tips 教你搞定电面!
- 北美IT企业fulltime薪资大曝光
- IT 简历模板大放送 | 《如何写好技术简历》讲座精华总结
- 面试遇到做过的题怎么办?
- 冷冻期大揭秘 | Google、FB、Amazon、Linkedin冷冻期
- 面试前如何了解一家IT企业?试试官方技术博客!
- Google晋升机制 | 大公司如何升级打怪, 获得晋升?
欢迎关注我的微信公众号:九章算法(ninechapter)。
精英程序员交流社区,定期发布面试题、面试技巧、求职信息等