内容简介:Create byRecently revised inHello 小伙伴们,如果觉得本文还不错,记得给个star, 小伙伴们的star是我持续更新的动力!
Create by jsliang on 2019-05-19 09:42:39
Recently revised in 2019-05-19 16:08:24
Hello 小伙伴们,如果觉得本文还不错,记得给个star, 小伙伴们的star是我持续更新的动力! GitHub 地址
一 目录
不折腾的前端,和咸鱼有什么区别
目录 |
---|
二 前言
- 难度 :简单
- 涉及知识 :数组、数学
- 题目地址 : leetcode-cn.com/problems/re…
- 题目内容 :
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 复制代码
三 解题
- 官方题解 : leetcode-cn.com/problems/re…
解题千千万,官方独一家,上面是官方使用 C++ / Java 进行的题解。
小伙伴可以先自己在本地尝试解题,再看看官方解题,最后再回来看看 jsliang 讲解下使用 JavaScript 的解题思路。
3.1 解法 - 转字符串
- 解题代码 :
var reverse = function(x) { // 转数组 let numberToArray = String(Math.abs(x)).split(''); // 转字符串 let result = ''; for (const i = 0; i < numberToArray.length; ) { result += numberToArray.pop(); } result = x > 0 ? Number(result) : - Number(result); // 超 [-Math.pow(2, 31), Math.pow(2, 31) - 1] 判断 if (result > Math.pow(2, 31) - 1 || result < - Math.pow(2, 31)) { result = 0; } return result; }; 复制代码
- 执行测试 :
-
x
:-1234
-
return
:
-4321 复制代码
- LeetCode Submit :
✔ Accepted ✔ 1032/1032 cases passed (88 ms) ✔ Your runtime beats 99.53 % of javascript submissions ✔ Your memory usage beats 46.01 % of javascript submissions (35.8 MB) 复制代码
- 知识点 :
-
String
:将其他值转成字符串。String
详细介绍 -
Number
:将其他值转成数字值。Number
详细介绍 -
pop()
:pop()
方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。pop()
详细介绍 -
Math
:JS 中的内置对象,具有数学常数和函数的属性和方法。Math
详细介绍
- 解题思路 :
首先,将传入的数字 x
转换成字符串,并分割成数组。
然后,遍历该数组,将最后一个取出来放到 result
中。
最后,判断这个 result
是否超过题目限制,如果超过则变成 0 。
- 进一步思考 :
3.2 解法 - 数学算法
- 解题代码 :
var reverse = function(x) { let result = 0; let y = Math.abs(x); while (y != 0) { result = result * 10 + y % 10; y = Math.floor(y / 10); if (result > Math.pow(2, 31) - 1 || result < -Math.pow(2, 31)) { result = 0; y = 0; } } return x > 0 ? result : -result; }; 复制代码
- 执行测试 :
-
x
:-1234
-
return
:
-4321 复制代码
- LeetCode Submit :
✔ Accepted ✔ 1032/1032 cases passed (108 ms) ✔ Your runtime beats 97.4 % of javascript submissions ✔ Your memory usage beats 23.63 % of javascript submissions (36 MB) 复制代码
- 知识点 :
-
Math
:JS 中的内置对象,具有数学常数和函数的属性和方法。Math
详细介绍
- 解题思路 :
首先,我们初始化数值。
然后,我们需要知道的是,一个数对 10 取余,可以得到这个数的个位数;一个数乘于 10 并加上一个个位数,可以将这个数字放到末尾。
最后,我们判断一开始传入的数值正负,再返回对应结果即可。
jsliang广告推送:
也许小伙伴想了解下云服务器
或者小伙伴想买一台云服务器
或者小伙伴需要续费云服务器
欢迎点击 云服务器推广 查看!
jsliang 的文档库 由 梁峻荣 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议 进行许可。
基于 github.com/LiangJunron… 上的作品创作。
本许可协议授权之外的使用权限可以从 creativecommons.org/licenses/by… 处获得。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- leetcode刷题-----7. 整数反转
- Go数组反转练习
- LeetCode (206):反转链表
- LeetCode (206):反转链表
- leetcode 206 反转链表
- OpenCV图像颜色反转示例
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
程序算法与技巧精选
郭继展 / 2008-5 / 36.00元
《信息科学与技术丛书•程序算法与技巧精选》分17章,139个例题。书中介绍的算法和技巧涉及到随机数函数理论,基础数论,新意幻方,提高程序运行速度和精度,特定数据排序,穷举、递推、递归和迭代等诸多方面。这些算法和技巧大多是作者历年从事教学、软件开发、学术研究和学习的成果总结。 《信息科学与技术丛书•程序算法与技巧精选》内容不涉及计算机专业课程的诸多概念、理论,读者只需要学过C语言,有算法、结构......一起来看看 《程序算法与技巧精选》 这本书的介绍吧!