LeetCode怎么实现整数反转
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要为大家展示了"LeetCode怎么实现整数反转",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"LeetCode怎么实现整数反转"这篇文章吧。一、
千家信息网最后更新 2025年12月01日LeetCode怎么实现整数反转
这篇文章主要为大家展示了"LeetCode怎么实现整数反转",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"LeetCode怎么实现整数反转"这篇文章吧。
一、题目描述(@LeetCode)
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123 输出: 321
示例 2:
输入: -123 输出: -321
示例 3:
输入: 120 输出: 21
如果反转后的整数溢出 32 位 int 范围则返回 0。
二、解题思路
利用取模和取整运算来分离每个位置,然后累加:
123 % 10 = 3:取最低一位 123 / 10 = 12:去掉最低一位 在累加反转数字前要进行溢出检查 INT_MAX = 2^31 - 1 = 2147483647 INT_MIN = -2^31 = -2147483648 如果 rec > 2147483647 / 10 = 214748364,则后面的 rec * 10 必定溢出,比如 2147483650 如果 rec = 2147483647 / 10 = 214748364 且 pop > 7 则后续 rec 刚好不溢出 小于 0 的情况同理
数学方法
class Solution {
public:
int reverse(int x) {
int rec = 0;
int pop = 0;
while (x) {
// 1. 每次取最后一位 123 % 10 = 3
pop = x % 10;
// 2. 去掉最后一位 123 / 10 = 12
x = x / 10;
// 3. rec > 2147483647 / 10 = 214748364 则后续 rec * 10 必定溢出,比如 214748365 * 10
// 4. rec = 2147483647 / 10 = 214748364 且 pop > 7 则后续 rec 刚好不溢出
if ((rec > INT_MAX / 10) || ((rec == INT_MAX / 10) && (pop > 7))) return 0;
// 5. 负数同理
if ((rec < INT_MIN / 10) || ((rec == INT_MIN / 10) && (pop < -8))) return 0;
// 6. 累加 123 = 12 * 10 + 3
rec = rec * 10 + pop;
}
return rec;
}
};
复杂度分析
时间复杂度:O(log(n)) 空间复杂度:O(1)
以上是"LeetCode怎么实现整数反转"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
整数
复杂
内容
复杂度
示例
篇文章
输入
输出
最低
数字
学习
帮助
位置
思路
情况
数学
方法
时间
易懂
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全公司成立的背景
网络安全的攻防体系包括哪些
2b2t服务器收费
网络安全校园会
数据库零基础知识讲解
浙江商业软件开发现价
西安交易软件开发
战地五新手哪个服务器体验好
网络安全的日常安全隐患有哪些
根据载体数据库分类
web服务器收集客户端通信端口
网络安全合格证超期
4亿社工库数据库
数据库基本安全问题
网络安全校园日主题图片
医院软件开发工程师考试
中小型软件开发
江阴网络服务器机柜欢迎选购
水果店管理系统数据库代码
erp软件开发前端
阿里云买完服务器后去哪里开启
2k20pro服务器不可用
加强网络技术防护
镇江软件开发流程
老虎教练无法连接服务器
QQ社交软件开发的参考文献
网络技术用于口语课堂
吴中区操作性能好服务器优质推荐
软件开发工程师厉害吗
数据库向列表框组合框添加数据