美文网首页
0002_Leetcode_7 整数反转【简单】(解法可优化)

0002_Leetcode_7 整数反转【简单】(解法可优化)

作者: 圆脸黑猫警长 | 来源:发表于2020-11-12 11:09 被阅读0次

    命名规则:AAA_Leetcode_BBB XXX【YYY】 AAA表示第N篇,BBB表示Leetcode中的第N道题,XXX是标题,YYY是力扣中的难度等级。

    题目:

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

    示例 1:

    输入: 123
    输出: 321
    示例 2:

    输入: -123
    输出: -321
    示例 3:

    输入: 120
    输出: 21
    注意:

    假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

    解法:

    整数反转一般考虑转数组,然后反转数据

    var reverse = function(x) {
    
      const before = x + '';
      let arr = before.split('')
      arr.reverse()
      if (arr.indexOf('-') === -1){
        return arr.join('')
      }else {
        arr.pop()
        arr = ['-',...arr]
      }
      return Number(arr.join(''))
    };
    
    console.log(reverse(-1234)
    
    

    此解法仍可优化,比如indexOf方法可以直接换成arr[arr.length-1] === '-'等。时间复杂度O(1) ?, 空间复杂度O(n),n是整数的位数(数组的长度)。

    相关文章

      网友评论

          本文标题:0002_Leetcode_7 整数反转【简单】(解法可优化)

          本文链接:https://www.haomeiwen.com/subject/unzdbktx.html