leetcode7. 整数反转java实现
整数反转
`
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
一、 题解
通过用x %10 来找到数字的个位数 在把从个位数到大数的顺序加到res上去
注意边界问题 因为Java 中如果是负数 取余的话 −12%10=−2−12%10=−2,所以我们不需要对负数进行额外处理。
并且由于Int 倒序的话 会发生溢出的问题 为了避免出界 就用最大数或者最小数减去 本身计算res * 10 + x % 10就容易溢出,所以变成除法就能避免
2 代码
代码如下(示例):
class Solution {
public int reverse(int x) {
int res = 0;
while (x != 0 ) {
if (x > 0 && res > (Integer.MAX_VALUE - x % 10) / 10) return 0;
if (x < 0 && res < (Integer.MIN_VALUE - x % 10) / 10) return 0;
res = res * 10 + x % 10;
x /= 10;
}
return res;
}
}
总结
算法自由度是O(logn) 应该是n的长度 而这里面的log 是以10 为底 算 比如 100 那就是算两次
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)