【leetcode刷题笔记】Sqrt(x)
Implement int sqrt(int x)
.
Compute and return the square root of x.
题解:二分的方法,从0,1,2.....x搜索sqrt(x)的值。
代码如下:
1 public class Solution { 2 public int sqrt(int x) { 3 long l = 0; 4 long r = x; 5 6 while(l <= r){ 7 long mid = l + (r-l)/2; 8 if(x == mid*mid) 9 return (int)mid; 10 else if(x < mid*mid) 11 r = mid-1; 12 else { 13 l = mid+1; 14 } 15 } 16 return (int)r; 17 } 18 }
需要注意的一点就是mid*mid的值有可能超过int的范围,所以要用long型规定各个变量。开始用的int型,结果出现了TLE的错误,猜想是int越界以后变成负数,就一直找不到sqrt(x)的值。
分类:
leetcode刷题总结
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了