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的写的不好, 之前没想到是这样. 以后还要再写一遍.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值