*LeetCode-Reverse Integer
来源:互联网 发布:数据库三范式概念 编辑:程序博客网 时间:2024/05/19 14:54
错惨了!!
1. 进制转换还是要练习!每次记得先做%余数,再做除法。
2.Math.floor 将double并没有转化成int 还要转化
3.这个题有复负数的情况,记得考虑!
4.整数溢出问题!!Integer.MAX_VALUE 2^31 -1
min value: -2^31
判断是否溢出的时候 要用计算结果判断 比如a+b < Integer.MAX_VALUE
但是一旦赋值 c = a+b; c<Integer.MAX_VALUE 就已经溢出了 无法判断;????!!!what
并且一开始就要判断那个负数是否已经到达最小,否则一取绝对值就溢出了
public class Solution { public int reverse(int x) { boolean neg = false; if ( x < 0){ if ( x == Integer.MIN_VALUE) return 0; x = Math.abs(x); neg = true; } int ans = x / 10; int rem = x % 10; int step = 0; int res = 0; while ( ans != 0 ){ int length = (int)Math.floor(Math.log10(ans)) + 1; if ( ( res + rem * Math.pow(10,length)) > Integer.MAX_VALUE) return 0; res += rem * Math.pow(10, length); rem = ans % 10; ans = ans /10; } if ( (res + rem) > Integer.MAX_VALUE) return 0; res += rem; if (neg) res = 0-res; return res; }}
别人的代码 觉得自己有点蠢
public class Solution { public int reverse(int x) { long result =0; while(x != 0) { result = (result*10) + (x%10); if(result > Integer.MAX_VALUE) return 0; if(result < Integer.MIN_VALUE) return 0; x = x/10; } return (int)result; }}
他为什么可以先赋值再判断呢??!
看第二遍终于发现了 因为他用了long!!
0 0
- LeetCode:Reverse Integer
- LeetCode: Reverse Integer
- [Leetcode] Reverse Integer
- LeetCode : Reverse Integer
- [LeetCode] Reverse Integer
- Leetcode: Reverse Integer
- LeetCode 7 - Reverse Integer
- leetcode 104: Reverse Integer
- Leetcode : Reverse Integer
- 【leetcode】Reverse Integer
- [LeetCode]Reverse Integer
- LeetCode-Reverse Integer
- [leetcode] Reverse Integer
- LeetCode - Reverse Integer
- leetcode之Reverse Integer
- LeetCode | Reverse Integer
- LeetCode: Reverse Integer
- Leetcode: Reverse Integer
- 关于代码覆盖率测试
- 用Github管理debug进度
- opencv_python安装与配置_windows
- EF架构~关系表插入应该写在事务里,但不应该是分布式事务
- ping -f
- *LeetCode-Reverse Integer
- sdio 初始化流程
- java连接各种数据库配置
- 例题10-15 杆子的排列 UVa1638
- 默染江山——oc内存管理
- codeforces 518B Tanya and Postcard
- 35 岁前程序员要规划好的四件事
- 算法导论(三版):第一章第二节课后题 以及 第一章思考题
- Spring MVC @PathVariable with dot (.) is getting truncated.