资讯专栏INFORMATION COLUMN

leetcode-Easy-第2期:Reverse Interger

Tecode / 3403人阅读

摘要:题目反转整数反转后的整数如果不在范围则返回简单解法耗时解法二获取余数,即从右边第一位开始的数字保留整数部分解题思路跳出循环,判断是否在最大值和最小值之间知识点复习小于的最大整数返回四舍五入返回的整数部分,包含正负号

题目
Given a 32-bit signed integer, reverse digits of an integer.
反转整数
反转后的整数如果不在[−2^31, 2^31 − 1]范围则返回0

Example1

Input: 123
Output: 321

Example2

Input: -123
Output: -321

Example3

Input: 120
Output: 21
简单解法

耗时:100ms

var reverse = function(x) {
    const max = Math.pow(2,31) -1
    const min = -1 * Math.pow(2,31)
    
    let arr = String(x).split("").reverse();
    const len = arr.length - 1;
    if(arr[0] === 0){
        arr = arr.splice(0,1)
    }
    if(arr[len] === "-"){
        arr.splice(len,1)
        arr.unshift("-")
    }
    const reverseX = Number(arr.join(""))
    if(reverseX > max || reverseX < min) return 0
    return reverseX
};

解法二:

var reverse = function(x) {
    const MAX = Math.pow(2,31) - 1
    const MIN = -1 * Math.pow(2,31)

    let res = 0;
    while (x !== 0) {
        // 获取余数,即从右边第一位开始的数字
        res = res * 10 + (x % 10); 
        //保留整数部分
        x = Math.trunc(x / 10); 
    }
    return (res > MAX || res < MIN) ? 0 : res;

};

解题思路:

234
1: res = 4,x = 23
2: res = 4*10 + (23%10) = 40 + 3 = 43,
   x: Math.trunc(23/10) = 2
3: res = 43*10 + (2%10) = 430 + 2 = 432
   x = Math.trunc(2/10) = 0

跳出while循环,判断res是否在最大值和最小值之间

知识点复习

Math.floor(x) //小于x的最大整数
Math.floor(-123/10) // -13

Math.floor(x) // 返回四舍五入
Math.round(-126/10) //  -13

Math.trunc(x) // 返回x的整数部分,包含正负号
Math.trunc(-123/10)  // -12

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/102722.html

相关文章

  • leetcode-Easy-1:two sum

    摘要:原题描述题目意思从数组中找出返回和在数组中的位置数组中一定存在和相加等于,并且和不能相等解法因为肯定有解,且值不一样,所以数组只有两个值的时候这两个值就为解判断对象是否有一个为对象的是原来数组的值,是该值的位置其实思路就是然后返回和对应的 原题描述: Given an array of integers, return indices of the two numbers such t...

    anonymoussf 评论0 收藏0
  • JS数据类型

    摘要:它并没有为整数给出一种特定的类型。例如,使用一个分隔符,一个可以模仿一个列表一个的数组可能更适合一些。不幸的是,当一个分隔符在用于列表中的元素时,打乱了这个列表。 JS常用数据类型 编程语言都具有内建的数据结构,但各种编程语言的数据结构常有不同之处。本文试图列出 JavaScript 语言中内建的数据结构及其属性,它们可以用来构建其他的数据结构;同时尽可能的描述与其他语言的不同之处。 ...

    ingood 评论0 收藏0
  • 弹性布局示例

    摘要:弹性布局背景模块目前为旨在提供一种更有效的方式来布置,对齐和分配容器中的项目之间的空间,即使其尺寸未知和或动态因此单词。主轴弹性容器的主轴是弹性项目布局的主要轴子项目默认按照主轴排列。判断哪个是起始点,主要看弹性布局的流动方向。 原文章地址https://css-tricks.com/snippe...根据原文章翻译并添加自己的理解,有不对的欢迎指正。 弹性布局-背景 Flexbox ...

    qqlcbb 评论0 收藏0
  • 弹性布局示例

    摘要:弹性布局背景模块目前为旨在提供一种更有效的方式来布置,对齐和分配容器中的项目之间的空间,即使其尺寸未知和或动态因此单词。主轴弹性容器的主轴是弹性项目布局的主要轴子项目默认按照主轴排列。判断哪个是起始点,主要看弹性布局的流动方向。 原文章地址https://css-tricks.com/snippe...根据原文章翻译并添加自己的理解,有不对的欢迎指正。 弹性布局-背景 Flexbox ...

    piglei 评论0 收藏0
  • js实现螺旋矩阵算法

    摘要:用填充一个的矩阵,该矩阵按顺时针旋转方向依次增大,用编程输出这个数组。要求如下我的思路先生成一个一维的数组这里实现的算法是通过略微修改了然后通过算法实现变化对应赋值方式有点蠢,通过实现还有有所收获的完整 Q:用0-9填充一个N*N的矩阵,该矩阵按顺时针旋转方向依次增大,用js编程输出这个数组。要求如下:showImg(https://segmentfault.com/img/bVO7z...

    oogh 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<