摘要:每日一题整数反转链接整数反转题目分析题目不是很难但是细节很多并且不允许存储位整数需要考虑很多的东西在之后的代码部分逐一分析代码标记一下正数还是负数负数的最小值反转后超出了范围提前范围避免下面的报错依次取出最低
题目不是很难,但是细节很多,并且不允许存储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
摘要:题目旋转数组给定一个数组,将数组中的元素向右移动个位置,其中是非负数。例如将到反转将到反转全部翻转得到最后结果。这里要注意下还有这样的情况即大于数组长度的情况。次旋转次旋转转回来了次旋转次旋转转回来了次旋转所以这里的有效等于对数组长度求余。 题目: 旋转数组 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例: 输入: [1,2,3,4,5,6,7] 和 k...
摘要:关于递归这里提一两点递归基本有这几步递归的模板,终止条件,递归调用,逻辑处理。 ?作者简介:大家好,我是车神哥,府学路18号的车神? ?个人主页:应无所住而生...
摘要:先实现栈操作遍历链表,把每个节点都进中然后再遍历链表,同时节点依次出栈,二者进行比较。 ?作者简介:大家好,我是车神哥,府学路18号的车神? ?个人主页:应无...
阅读 3029·2023-04-26 02:27
阅读 2729·2021-11-22 13:54
阅读 882·2021-11-12 10:36
阅读 3730·2021-10-09 09:44
阅读 3135·2021-10-09 09:41
阅读 1190·2021-09-22 10:02
阅读 2797·2019-08-30 15:56
阅读 3080·2019-08-30 11:02