Binary367 69 287

Binary367ValidPerfectSquare

直接用0-46340作为范围写的binarysearch, 但其实可以不用如此. 可以以target为上限, 但是要注意mid*mid溢出问题. 解决方法为设置mid为long型.

Math方法
1 = 1
4 = 1 + 3
9 = 1 + 3 + 5
16 = 1 + 3 + 5 + 7
25 = 1 + 3 + 5 + 7 + 9
36 = 1 + 3 + 5 + 7 + 9 + 11
注意for循环里i的上限. 与num/2有关, 但不能是它.

Failed Cases: 1, 4.

比如num==4的时候要加到3, 但num/2 == 2而非3

Failed Case: 2147483647 TLE

因为等于这个数的时候, 加到这个num/2+1的奇数累加值会超过Integer.MAX_VALUE, 所以溢出


Binary69Sqrt(x)

这个有个巧妙之处, 最好用x/mid来比较, 而不要mid*mid否则会溢出. 并且刚才还把x/mid的比较大小和l h
弄反了.

Binary287

cycle的写的不好, 之前没想到是这样. 以后还要再写一遍.

阅读更多
换一批

没有更多推荐了,返回首页