9. Palindrome Number
problem description
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
Example 1:
Example 2:
Example 3:
Follow up:
Coud you solve it without converting the integer to a string?
algorithm thought
最开始拿到这题,发现,这不是跟第7题很类似吗。直接int2string,使用string来判断就是个很简单的题了。不到一分钟写完之后,发现description里的follow up要求能不能不用string结题。于是又开始想如何不用string,其实在c++中string的结构和vector很像,动态数组vector也很适合存储数字中的所有位。
code
algorithm analysis
时间复杂度前两个算法其实都是一样的,都是O(n)。但是字符串的算法更快。我认为是由于每次vector调用push_back后扩容导致。于是想了一下能否提前知道vector的size。防止在运行时分配内存,想到input都是int类型,INT_MAX只有10位,所以定义一个大小为10的数组足够了。改进了一下,发现效果不是很明显,因为大小为10的话,其实内存分配所消耗的资源也不是很多。但是之后很多题目,如果能减少vector或者unordered_map的内存加倍操作,也就是提前resize好大小,很多题目会快很多。
Last updated