LeedCode 之 Palindrome Number

题目链接:Palindrome Number
这道题目是判断一个整数是不是回文数,并且不能花费多余的空间。
回文数即正着和倒着是一样的~
刚刚做过Reverse Integer反转数问题,那么就判断反转前后的数是否一样不就可以了嘛~
直接在反转数的上稍微修改了下,并且可以说更简单了,因为负数不是回文数(0是回文数),省去了判断符号和取绝对值的步骤。
代码如下:

public class Solution {
    public boolean isPalindrome(int x) {
            if(x<0)  
                return false;
            long num = x;
            String str = Long.toString(num);
            String reverse = 
            new StringBuffer(str).reverse().toString();
            num = Long.parseLong(reverse); 
            System.out.println(num);
            if (num > Integer.MAX_VALUE) //这里判断反转后的数值是否越界
                return false;
            if(num == x)
                return true;
            else
                return false;
    }
}

其实在读完题目,要求Do this without extra space,这里我就疑惑了不能花费多余的空间,搜索一番,应该是指空间复杂度为O(1)

空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度。一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储空间和算法在运行过程中临时占用的存储空间这三个方面。
关于O(1)的问题, O(1)是说数据规模和临时变量数目无关,并不是说仅仅定义一个临时变量。举例:无论数据规模多大,我都定义100个变量,这就叫做数据规模和临时变量数目无关,就是说空间复杂度是O(1)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值