确定整数是否是回文?空间O(1)时间复杂度O(logn)
来源:互联网 发布:手机借款软件排行 编辑:程序博客网 时间:2024/06/06 13:05
class Solution { public boolean isPalindrome(int x) { if( x <0 || (x % 10 == 0 && x != 0)){ return false; } int reverseNumber = 0; while( x > reverseNumber){ reverseNumber = reverseNumber*10 + x%10; x /= 10; } return x == reverseNumber || x == reverseNumber/10; }}
现在让我们考虑如何恢复上一半的数字。对于号码1221
,如果我们这样做1221 % 10
,我们得到最后一个数字1
,得到第二个数字,我们需要删除最后一个数字1221
,我们可以通过将它除以10来实现1221 / 10 = 122
。然后我们可以通过将模数乘以10得到最后一个数字122 % 10 = 2
,如果我们将最后一位乘以10,并添加第二个最后一个数字1 * 10 + 2 = 12
,则它给出我们想要的还原数字。继续这个过程将给我们更多的数字的恢复的数字。
现在的问题是,我们怎么知道我们已经达到了这个数字的一半?
由于我们将数字除以10,并将反转数乘以10,当原始数字小于反转数时,这意味着我们已经处理了一半数字。
阅读全文
0 0
- 确定整数是否是回文?空间O(1)时间复杂度O(logn)
- leetcode之O(1)空间复杂度判断一个整数是否是回文整数
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- O(logn)时间复杂度求Fibonacci数列
- O(logn)时间复杂度求Fibonacci数列
- O(logn)时间复杂度求Fibonacci数列
- O(logn)时间复杂度求Fibonacci数列
- 时间复杂度O(n),空间复杂度O(1)的排序
- 时间复杂度为O(n),空间复杂度为O(1)
- O(N)时间复杂度、O(1)空间复杂度 构造数组
- 不用额外空间的整数交换以及时间复杂度为O(n)空间复杂度为O(1)的排序算法
- 剑指offer系列-T11_2数值的整数次方(时间复杂度为o(logn))
- O(logN)时间复杂度内求整数的N次方以及矩阵的N次方
- 如何对n个整数数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 二分搜索的时间复杂度O(logN)如何得到
- 二分搜索的时间复杂度O(logN)
- windows 环境下c++系统栈大小调整
- 素数
- HTML5 ul li 去前面的圆点 和 横排
- NGINX基于Cookie和Header的负载均衡会话保持
- Spring中标签属性name和id的区别
- 确定整数是否是回文?空间O(1)时间复杂度O(logn)
- VTK基础概念-圆柱体绘制
- 细说单点登录
- 无题
- clipToPadding 和clipChildren 的区别
- Python之函数参数的使用
- c++ poco Event测试用例
- 4.2分析下面程序,请指出错误的原因和程序错在哪里,并改正错误。
- 机房之导出Excel