一拳干碎我的鹅厂梦
一面做了一道算法题,反转整数,没考虑到负数的溢出特例一直卡着,面试官全程也不提醒,最后说时间差不多了问了个八股就结束了


全部评论
力扣上经常看见那道题 不过我依旧不会写
溢出的情况不知道咋搞
藤子要提交代码?不是写一写然后面试官看下就可以了吗?难道他要求你必须通过最小负数的特例?
没提醒有点过分
作预检测就好了呀
我们的返回结果肯定是这样子的变化,比如返回结果定义ans,目标整数是x
每次的变化是
bit = x%10 // 拿到低位
x/=10
ans = ans*10+bit // 加入ans的高位
// 溢出检测就可以在ans=ans*10+bit之前做
本质上是 ans*10+bit > maxInt32 => ans > (maxInt32-bit)/10
代码可以这样写:
func reverse(x int) int {
neg := false
// 只检查正溢出
if x < 0 {
neg = true
x = -x
}
ans := 0
for x > 0 {
bit := x % 10
x /= 10
// 检查溢出
if ans > (math.MaxInt32-bit)/10 {
// 溢出
return 0
}
ans = ans*10 + bit
}
if neg {
return -ans
}
return ans
}
愿意的话,可以看看我首页米的最新
面试官为啥不提示
大佬,啥bg呀
😅
相关推荐
01-22 18:49
四川大学 Java 点赞 评论 收藏
分享
01-04 07:53
门头沟学院 C++
心愿便利贴:工作了以后回头再看待这个问题,从客观的视角来讲是因为每个人对自己的要求不同,学习好的人对自己的要求很高,所以觉得考不好就天塌了,认为自己学习好并且值得一份好工作的人也是一样,找不到符合自己预期的工作肯定也会觉得是侮辱,牛客上有很多名校大学生,肯定会存在这种好学生心态啊,“做题区”从来都不是贬义词,这是大部分普通人赖以生存的路径,这个有什么好嘲讽的,有“好学生心态”没有错,但是不要给自己太大的压力了 点赞 评论 收藏
分享
查看4道真题和解析