【Leetcode-easy】Reverse Integer
2024-08-29 11:06:46
思路:取绝对值,反转,并判断反转的结果是否大于最大整数,需要注意的细节:判断时需要这样:result > (Integer.MAX_VALUE - v) / 10 否则result * 10 + v% 10 > Integer.MAX_VALUE左边会直接出现溢出。最后加上符号位。
public int reverse(int x) {
if(x==Integer.MIN_VALUE){
return 0;
}
//然后取绝对值,判断绝对值不大于Integer.MAX_VALUDE,不能直接用result拼接判断,否则会溢出。
//例如result * 10 + v% 10 > Integer.MAX_VALUE ,result为反转结果,v为最后一位,也是上一个原始数截取的余数.
//左边很可能就会溢出,因此需要反转来判断 :result > (Integer.MAX_VALUE - v) / 10
int absx=Math.abs(x);
int result=0;
while(absx!=0){
int v=absx%10; //余数,作为反转后的连接位
if(result>(Integer.MAX_VALUE-v)/10){
//溢出
return 0;
}
//如果不溢出,则连接下一位
result=(result*10+v);
absx/=10; //原始数去掉最后一位,重复上述截取连接步骤
}
//如果原始数为负数,则返回负数,否则直接返回
return x>0?result:-result; }
最新文章
- C# Linq排序
- scrapy爬虫结果插入mysql数据库
- Java笔记:对象,方法,类
- VS2017 RC IIS Express 无法启动 环境不正确
- textarea关于空格和换行那点事
- phantomjs 乱码解决
- 【MVC】自定义ASP.NET MVC Html辅助方法
- 过长文字自动换行的技巧 Word-Break Word-Wrap
- 初识KMP
- 【supervisord】部署单进程服务的利器
- 资深小白带你走进OS Memory
- Android为TV端助力 自定义通知栏
- 「SDOI2014」重建 解题报告
- Java“禁止”泛型数组
- Spring Boot REST(二)源码分析
- 关于学习JAVA程序设计语言的回顾与展望
- 【Java面试题】21 Java中的异常处理机制的简单原理和应用。
- Linux CentOs 下 安装 mysql nginx redis
- C#导入PFX和Cer证书的工具类
- Python连接符的种类和使用区别