LeetCode #9 Palindrome Number
发布日期:2025-04-04 18:41:38 浏览次数:12 分类:精选文章

本文共 474 字,大约阅读时间需要 1 分钟。

重新优化后的内容如下:

判断一个整数是否是回文数,这里不使用额外的空间。对于回文数,有一种特殊情况需要注意,那就是负数的数字不会被视为回文数。例如,-121反过来读是121-,这显然不等于原数-121。因此,我们可以首先判断判断整数是否为负数,直接返回false。如果是0,也返回true,因为0本身是一个合法的数字回文。

对于其他情况,我们可以通过提取数字的最低位,逐步构建一个逆转的数字,进行比较。具体步骤如下:

  • 初始化两个变量h和l,分别表示原数字和逆转后的数字。h初始化为x,l初始化为0。
  • 进入循环,当h大于l时,执行以下操作:
    • l = l * 10 + h % 10
    • h = h / 10
  • 当循环结束时,如果h等于l,或者h是l的一半(也就是当h等于l/10时),则返回true,否则返回false。
  • 这种方法确保了我们可以在不使用额外空间的情况下判断回文数,并且时间复杂度为O(log(x)),空间复杂度为O(1)。

    转载于:https://www.cnblogs.com/silence-cnblogs/p/6845706.html

    上一篇:LeetCode - 48. Rotate Image
    下一篇:LeetCode "Sum of Two Integers"

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年04月19日 18时06分30秒