坐标系 & 数值计算类
用 newton's method 起始 x_n 值取的好可以收敛的快一点,不过也要注意 corner case,比如 num = 0, 1 ..


因为是 double ,epsilon 的精度要高一些。
其实这题挺像 Two Sum.
不建议真这么写,提一下就行了。
(排序麻烦版)基本步骤:
另一种靠 HashSet 的写法就简洁有效多了,扫描左右,记录中点再做检测就是。
记录中点时候最好先推算一下,尽量不要存一个 /2 之后的 double 类,而可以经过计算保证所有的变量都是 int 类。
用 Set 很好的处理了“多个点视为同一个点”的问题,唯一的问题是,我知道另外一个点的坐标是什么,但是 hashset 不能直接搜 new int[]{newX, newY},得靠 hashcode.
最简单的做法就是,自己定义 String 做 hashcode. "x | y" 代表 point(x, y) 就可以了。这种做法值得学习一个~
注意要点和流程:
O(n^2),速度还不错
Last updated