5-整数反转Reverse Integer
题目
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123 输出: 321
示例 2:
输入: -123 输出: -321
示例 3:
输入: 120 输出: 21 注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−$2^{31}$, $2^{31}$ − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
解答
先转成字符串,通过array反转
如果是正数,就反转
如果是负数,就拆了负号,反转,再按回负号
提交前判断溢出的情况
作者:cuidingfeng 链接:https://leetcode-cn.com/problems/two-sum/solution/jszheng-shu-fan-zhuan-by-cuidingfeng/
Runtime: 68 ms, faster than 94.53% of JavaScript online submissions for Reverse Integer.
Memory Usage: 35.9 MB, less than 45.88% of JavaScript online submissions forReverse Integer.
直接操作数字反转
探险过程
题目意思是,给一串数字,按位反着输出,如果在 [−$2^{31}$, $2^{31}$ − 1]之外,就输出0。 那么数字怎么反着输出呢? 记得数组有反转的方法:.reverse() 所以思路是:数字转数组,数组反一下,再转回数字。 不过number[]转回数字好像不太方便,因此就用字符串过渡一下。
Runtime: 80 ms, faster than 68.53% of JavaScript online submissions forReverse Integer.
Memory Usage: 36 MB, less than 36.74% of JavaScript online submissions for Reverse Integer.
想办法优化一下? if判断的时候可以没必要直接计算reverse的值,可以先判断长度。
长度长于10,必然溢出
长度等于10,再上判断
测试代码
Last updated
Was this helpful?