当前位置: 首页 > 知识库问答 >
问题:

为什么1534236469不能通过[关闭]

甄华清
2023-03-14

我认为1534236469超出范围!Leetcode:7。反向整数我无法通过测试输入1534236469。为什么?返回范围为[Integer.MAX_VALUE,Integer.MIN_VALUE],其他应返回

class Solution {
    public int reverse(int x) {
        if(x > Integer.MAX_VALUE || x < Integer.MIN_VALUE)
            return 0;
        int ans = 0;
        while(x != 0) {
            ans = ans * 10 + (x % 10);
            x /= 10;
        }
        return ans;
    }
}

谢谢你的帮助

共有1个答案

卫鸿朗
2023-03-14

1534236469的反面是9646324351,大于整数。最大值,因此您的代码将导致数字溢出和错误结果。

您可以使用long而不是int来解决问题。

编辑:

您添加的if(x

即使x在有效范围内,x的反面也可能在范围之外。如果要检测反转的x太大而返回0,则应在内部使用long

class Solution {
    public int reverse(int x) {
        long ans = 0;
        while(x != 0) {
            ans = ans * 10 + (x % 10);
            x /= 10;
        }
        if(ans > Integer.MAX_VALUE) {
            return 0;
        } else {
            return (int) ans;
        }
    }
}

 类似资料:
  • 我了解在lambda中捕获此(修改对象属性)的正确方法如下: 但我对我所看到的以下特点感到好奇: 我感到困惑(并希望得到回答)的奇怪之处在于,为什么以下方法有效: 以及为什么我无法通过引用明确捕获此内容:

  • 我正在看这个leetcode挑战: 我的代码不能通过以下测试用例: 您的输入: 输出: 预期:

  • 问题内容: 据我了解,官方的redux doc动机与传统的MVC架构相比具有优势。但是它没有提供以下问题的答案: 为什么要通过Facebook Flux使用Redux? 这仅仅是编程风格的一个问题:功能性还是非功能性?还是问题出在redux方法之后的abilities / dev-tools中?也许缩放?还是测试? 如果我说redux对于来自函数式语言的人来说是一种变化,那我是对的吗? 为了回答这

  • 问题内容: 我无法通过Java API连接到原始ElasticSearch集群。 复制: 结果: 结果: 因此,一切都可以通过HTTP运行。通过Java尝试(每个页面): 我得到以下堆栈跟踪: 与最接近的事我发现,到目前为止,这个问题是在这里,但线程落后了,但未得到解决。 问题答案: TransportClient的默认端口为9300。您必须在Java代码中使用它而不是9200。这可能是连接失败的

  • 我可以使用SQLDeveloper连接到远程数据库。 我试图从命令行使用sqlcl连接到同一个数据库,但我收到一个错误。 下面是我正在运行的命令: 我也尝试过: 以下是我收到的错误: 同样在SQLDeveloper中,我只是在“自定义jdbc url”下输入以下内容,它连接没有任何问题,所以我希望我可以使用相同的URL通过命令行连接,但到目前为止,它不起作用:

  • 我想通过数组映射,但我得到一个错误:TypeError: locationAddress.map不是一个函数 我是新来的反应和反应钩。我一直试图简化数组,但运气不好。知道为什么这不起作用吗? 编辑:到目前为止,我尝试了答案中的所有更改,但错误仍然存在。我包括了更多的代码和包。json文件。我尝试停用一些函数,如useEffect,现在只有在我尝试键入要映射的输入字段时才会显示错误。 找到解决方案: