This website requires JavaScript.

LeetCode -- 整数反转

2020.04.26 21:58 字数 755 喜欢 4 评论 3

LeetCode 第七题,整数反转:

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

解题:

  1. 暴力解决方式,涉及到 array.reversearray.indexOf 等方法的使用,时间复杂度 > O(n2)
  2. 另一种方式,创建一个新变量,利用输入变量除10取余数方式,逐一赋值。时间复杂度 O(logn)
  • JavaScript
function reverse(x) {
        let y = 0;

        while(x !== 0) {
                y = y * 10 + x % 10;
                x = ~~(x / 10);
        }

        return y > 2 ** 31 -1  || y < -(2 ** 31) ? 0 : y
}
  • Go

package reverse

import "math"

func reverse(x int) int {
    y := 0

    for x != 0 {
         y = y * 10 + x % 10

         if x > 0 {
     // 数据类型转化
            x = int(math.Floor(float64(x)/10))
         } else {
            x = int(math.Ceil(float64(x)/10))
         }
    }

    if y > int(math.Pow(2, 31) - 1) || y < int(-math.Pow(2, 31)) {
        return 0
    }

    return y
}

Contact

微信公众号

微信

相关推荐

暂无推荐文章