这道题目本来不想总结的,因为想到的解题方法就是枚举方法,我们经常所说的暴力解法,分析了时间复杂度,得到的是O(n^2),当时我就有点不要想着去做这道题目,继续去想有什么时间复杂度更好的办法,结果感觉越想越复杂。忍耐不住下就去看了官方解法,果不其然,就是暴力枚举+哈希表的应用。遍看所有解法,就只有暴力解法,其他的解法都么有。
所以请记住,做了再说!可能你所想的就是最优解!
这道题有难点嘛?我觉得没有什么难点,最大的难点在于就是相信自己,哈哈哈哈。开个玩笑。
难点我个人认为是哈希表的应用以及最后不论排列顺序去统计数量。
算法简介
总体上就是两个大循环。
外部大循环是作为一个遍历i的循环,将每个点都当作是到其余两个端点欧式距离相等的拐点。
内部大循环是包含两个次循环的,第一个次循环,是作为一个计算每个点与拐点的欧氏距离的循环, 利用哈希表Map,进行存储;第二个次循环,是统计所有符合条件的回旋镖数量。
题目总体难度真的不算很难,侧重点在于只是自己想法的实现,而且相信自己(手动狗头!)。
其实侧重点在于考察数据结构的认知。