成都金铭 网站建设,最新百度快速收录技术,网站做发,南宁做网站 的给你一个非负整数 x #xff0c;计算并返回 x 的 算术平方根 。
由于返回类型是整数#xff0c;结果只保留 整数部分 #xff0c;小数部分将被 舍去 。
注意#xff1a;不允许使用任何内置指数函数和算符#xff0c;例如 pow(x, 0.5) 或者 x ** 0.5 。 很容易想到用二分…给你一个非负整数 x 计算并返回 x 的 算术平方根 。
由于返回类型是整数结果只保留 整数部分 小数部分将被 舍去 。
注意不允许使用任何内置指数函数和算符例如 pow(x, 0.5) 或者 x ** 0.5 。 很容易想到用二分查找但有一点要注意mid的平方计算时要强转成long类型因为如果x很大的话取x的一半算平方很容易就超出int范围。
public int mySqrt(int x) {int l 0, r x, ans 0;while (l r) {int mid l (r - l) / 2;if ((long) mid * mid x) {r mid - 1;} else {ans mid;l mid 1;}}return ans;}
本来第一百题特地挑一题简单题刷一下结果自信写出来第一次提交还错误怎么想逻辑都没问题那很大可能就跟数字大小有关了改成long之后果然没问题了。
只能说写代码题没有简单和困难只有坚持和细心还记得写两数之和时半天才写出来真半天不是形容词庆祝下力扣刷一百题再接再厉也庆祝各位大佬们刷一千题一万题