7. Reverse Integer
題目網址:https://leetcode.cn/problems/reverse-integer/
題意:給一 32-bit 的有號整數
x
, 返回將x
中的數字部分反轉後的結果。如果反轉後的整數超過 32-bit 的有號整數的範圍
[−$2^{31}$, $2^{31}$ − 1]
, 則返回0
。假設不允許儲存 64-bit 整數(有號 or 無號), 也就是說結果只能用 int 來儲存, 不允許用 long 之類的 data type。
Solution:
想法:int 的範圍是
[-2147483648, 2147483647]
, 因此在執行res = (10 * res) + (x % 10)
前, 要先判斷這樣做是否會 overflow
class Solution { |
- time:$O(log(x))$ ➔ $\dfrac{x}{10^k} = 1$, 得 $k = log(x)$
- space:$O(1)$ ➔ 只需常數空間
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Zako's Blog!
評論