今天一天没啥进展,vs从2019到2017,install、uninstall,前端害我,真的要碎啦。折腾坏了,决计不干啦。对着项目敲一敲算啦!刚刚跟同组的朋友聊了很久,本打算回宿舍,心想还是把题给做了。
1、题目描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a19e42f8d8e04e2780fc9aa45dacf750.png)
2、逻辑分析
很简单的一个二分法,在二分查找的每一步中,我们只需要比较中间元素 mid的平方与 x 的大小关系,并通过比较的结果调整上下界的范围。由于我们所有的运算都是整数运算,不会存在误差,因此在得到最终的答案 result。
3、代码演示
public int mySqrt(int x) {
int low = 0, high = x, result = -1;
while(low <= high){
int mid = low + (high - low)/2;
if((long) mid * mid <= x){
result = mid;
low = mid + 1;
}else{
high = mid - 1;
}
}
return result;
}
时间复杂度O(logX) ,空间复杂度:O(1)。
OK啦,晚安!下班咯,今天晚上去吃了贵州特色烤鱼,一顿顶两顿哈哈。明天继续嘿嘿,我是开心积极的小男孩!欧耶~