给定一个 32 位有符号整数,将整数中的数字进行反转。
输入: 123 输出: 321
输入: 120 输出: 21
输入: -123 输出: -321
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。
但是,当因为当 temp = rev*10+pop时,有可能会造成溢出.
rev
,为正数temp = rev*10+pop
,导致溢出.那么一定rev >= INTMAX/10
;rev > INTMAX / 10
;那么temp = rev*10+pop
一定会溢出rev == INTMAX / 10
,那么只要pop > 7 ,temp = rev*10+pop
就会溢出O(log(x))
O(1)
算法面试系列文章:
BAT面试算法进阶(1)--两数之和 BAT面试算法进阶(2)- 无重复字符的最长子串(暴力法) BAT面试算法进阶(3)- 无重复字符的最长子串(滑动窗口法) BAT面试算法进阶(4)- 无重复字符的最长子串(滑动法优化+ASCII码法) BAT面试算法进阶(5)- BAT面试算法进阶(5)- 最长回文子串(方法一) BAT面试算法进阶(6)- BAT面试算法进阶(6)-最长回文子串(方法二) BAT面试算法进阶(8)- 删除排序数组中的重复项 BAT面试算法进阶(9)- 三维形体投影面积 BAT面试算法进阶(10)- 最长的斐波那契子序列的长度(暴力法) BAT面试算法进阶(11)- 最长的斐波那契子序列的长度(动态规划法) BAT面试算法进阶(12)- 环形链表(哈希表法)