资讯专栏INFORMATION COLUMN

leetcode每日一题-7:整数反转

lvzishen / 900人阅读

摘要:每日一题整数反转链接整数反转题目分析题目不是很难但是细节很多并且不允许存储位整数需要考虑很多的东西在之后的代码部分逐一分析代码标记一下正数还是负数负数的最小值反转后超出了范围提前范围避免下面的报错依次取出最低

leetcode每日一题-7:整数反转

链接

整数反转



题目



分析

题目不是很难,但是细节很多,并且不允许存储64位整数,需要考虑很多的东西.在之后的代码部分逐一分析.



代码

C++

class Solution {public:    int reverse(int x) {        int f = 1;        // 标记一下正数还是负数        if(x < 0) f = -1;                int maxn = INT_MAX;        int inf = INT_MIN;        int res = 0;        // 负数的最小值反转后超出了范围,提前范围,避免下面的abs报错        if(x == inf) return 0;        x = abs(x);        while(x > 0)        {            // 依次取出最低位            int t = x % 10;            // 如果当前res * 10 > maxn,那么就超出了范围            if(res > maxn / 10) return 0;            // 不超范围就更新res的值            res = res * 10 + t;            // 更新x的值            x /= 10;        }        // 返回带标志位的res        return f * res;    }};

Java

官方题解没有转化成正数求解,而是一起计算

class Solution {    public int reverse(int x) {        int rev = 0;        while (x != 0) {            if (rev < Integer.MIN_VALUE / 10 || rev > Integer.MAX_VALUE / 10) {                return 0;            }            int digit = x % 10;            x /= 10;            rev = rev * 10 + digit;        }        return rev;    }}作者:LeetCode-Solution

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

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

相关文章

  • LeetCode每日一题: 旋转数组(No.189)

    摘要:题目旋转数组给定一个数组,将数组中的元素向右移动个位置,其中是非负数。例如将到反转将到反转全部翻转得到最后结果。这里要注意下还有这样的情况即大于数组长度的情况。次旋转次旋转转回来了次旋转次旋转转回来了次旋转所以这里的有效等于对数组长度求余。 题目: 旋转数组 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例: 输入: [1,2,3,4,5,6,7] 和 k...

    FreeZinG 评论0 收藏0
  • LeetCode天梯>Day026 反转链表(递归法+(迭代法)双链表法) | 初级算法 | Py

    摘要:关于递归这里提一两点递归基本有这几步递归的模板,终止条件,递归调用,逻辑处理。 ?作者简介:大家好,我是车神哥,府学路18号的车神? ?个人主页:应无所住而生...

    imingyu 评论0 收藏0
  • LeetCode天梯>Day028 回文链表(双指针+递归+栈+数组) | 初级算法 | Pyth

    摘要:先实现栈操作遍历链表,把每个节点都进中然后再遍历链表,同时节点依次出栈,二者进行比较。 ?作者简介:大家好,我是车神哥,府学路18号的车神? ?个人主页:应无...

    miguel.jiang 评论0 收藏0

发表评论

0条评论

lvzishen

|高级讲师

TA的文章

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