Integer,Long,BigInteger字符转化
在 Java 中:
如果字符串超过 333333 位,不能转化为 Integer
如果字符串超过 656565 位,不能转化为 Long
如果字符串超过 500000001位,不能转化为 BigInteger
牛顿迭代法
牛顿迭代法用来求平方根,设要求n的平方根,即
即 x^2=n
即 x=n/x
因为在java中,x=Math.sqrt(n)
即 x + n/x = 2 Math.sqrt(n)
即 Math.sqrt(n) = (x + n/x)/2
例题:69. x 的平方根
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。示例 1:输入:x = 4
输出:2
示例 2:输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。提示:0 <= x <= 231 - 1
题解:
class Solution {public int mySqrt(int a) {long x = a;while (x * x > a) x = (x + a / x) / 2;return (int)x;}
}
二分查找mid
在二分查找中mid即中间值要用
int mid = left + ((right - left) >> 1);
这样是为了防止溢出,如果我们写成mid = (right + left) / 2,那么当right和left非常大的时候,它们的和可能会大于TMax造成溢出
后面还会持续更新......
总结:脑子混沌了......被问到的东西要么记不起来了,要么之前没涉及过