32ビット符号付き整数を与え、あなたはそれぞれ逆に、この整数値を必要とします。
実施例1 : 入力: 123 出力: 321 例 2 : 入力: -123 出力: -321 例 3 : 入力: 120 出力: 21 注: 我々は格納することができる環境があると仮定し、32ビット符号付き整数を、値範囲[ - 1 -2 ^ 31、2 ^ 31] 整数オーバーフローが後に、それは0を返し、逆ならば、この仮説によるとしてください。
アイデア:
この質問は逆転の注目の後にそう逆の動作時に注意を払うたびにオーバーフローを引き起こしている、オーバーフローすることが最も重要です
//判断是否越界 場合(結果> Integer.MAX_VALUEの/ 10 ||(結果== Integer.MAX_VALUEの/ 10 && POP> 7))戻り0; IF(結果<はInteger.MIN_VALUE / 10 ||(結果==はInteger.MIN_VALUE / 10 &&ポップ<-8))戻り0;
公共 INTリバース(INT X){ int型の結果= 0 。 一方、(X!= 0 ){ int型のポップ= X%10 。 // 判断是否越界 場合(結果> Integer.MAX_VALUEの/ 10 ||(結果== Integer.MAX_VALUEの/ 10 && POP> 7))戻り 0 ; もし(結果<はInteger.MIN_VALUE / 10 ||(結果==はInteger.MIN_VALUE / 10 &&ポップ<-8))戻り 0 ; 結果 =結果* 10 + ポップ。 X / = 10 。 } 戻り値の結果; }
複雑性分析
時間の複雑さ:O(ログ(X))は、xは約LOG10(x)の数字を持っています
複雑スペース:O(1)。
著者:LeetCodeの
リンクします。https://leetcode-cn.com/problems/two-sum/solution/zheng-shu-fan-zhuan-by-leetcode/
出典:滞在ボタン(LeetCode)