摘要:這道題有一些細節(jié)需要留意。新數(shù)會不會溢出符號位如何處理用慣用的做法,除以取余,得到最低位,放進。每次循環(huán)乘以累加當前最低位,同時除以不斷減小。要點在于考慮乘累加運算的情況,用分支語句判斷發(fā)生溢出的條件。最后的結(jié)果要加上之前排除的符號位。
Problem
Reverse digits of an integer. Returns 0 when the reversed integer overflows (signed 32-bit integer).
ExampleGiven x = 123, return 321
Given x = -123, return -321
Note這道題有一些細節(jié)需要留意。新數(shù)res會不會溢出?符號位如何處理?
用慣用的做法,n除以10取余,得到最低位cur,放進res。每次循環(huán)res乘以10累加當前最低位cur,同時n除以10不斷減小。
要點在于考慮res乘10累加運算的情況,用分支語句判斷發(fā)生溢出的條件。不能直接寫if (res * 10 + cur > Integer.MAX_VALUE),因為res * 10就有可能會溢出了;而要用(Integer.MAX_VALUE - cur) / 10,因為只有減法和除法,結(jié)果不可能溢出。
最后的結(jié)果要加上之前排除的符號位。
public class Solution { public int reverseInteger(int n) { boolean isNeg = n < 0; n = isNeg ? -n : n; int res = 0; while (n != 0) { int cur = n % 10; if (res >= (Integer.MAX_VALUE - cur) / 10) return 0; res = res * 10 + cur; n /= 10; } return isNeg ? -res : res; } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65555.html
摘要:中的運算符,運算之后要出來,繼續(xù)遍歷數(shù)組。是放入新的數(shù)字,用轉(zhuǎn)換為均可。 Problem Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an integer or another ...
摘要:直接的方法不可取因為是每一層。層直接從取出實際上是將這個后應(yīng)該得到。這個時候考慮逆向,建立一個,將出來的東西再一個順序,逆逆得順是一個很好用的操作符,判斷一個對象是否是一個類的實例??有⌒囊稽c這種情況啊代碼 這道題真是超級棒的stack DFS樣板題啊,在這里給自己寫個小小的總結(jié) 思路:想到stack并不難,這種嵌套式一般是DFS的思想,先走到最里面最小的那個括號,然后逐漸回到上一層→...
摘要:將表達式轉(zhuǎn)換為逆波蘭式,然后求值轉(zhuǎn)換中綴表達式為逆波蘭式魯棒性檢測,表達式中沒有操作數(shù)計算逆波蘭式值參考 表達式類算法題小結(jié) [TOC] 聲明 文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處:[1] https://segmentfault.com/u/yzwall[2] blog.csdn.net/j_dark/ 表達式分類 根據(jù)運算符與相關(guān)操作操作數(shù)的位置不同,將表達式分為前綴,中綴和后綴表...
LeetCode version Problem Given a non-empty list of words, return the k most frequent elements. Your answer should be sorted by frequency from highest to lowest. If two words have the same frequency, t...
摘要:暴力解法就是時靈時不靈,兩次一次。希望看到的大神能夠分享優(yōu)質(zhì)的解法謝謝大家 Problem For an array A, if i < j, and A[i] > A[j], called (A[i], A[j]) is a reverse pair.return total of reverse pairs in A. Example Given A = [2, 4, 1, 3, ...
閱讀 1774·2021-10-11 10:57
閱讀 2364·2021-10-08 10:14
閱讀 3404·2019-08-29 17:26
閱讀 3363·2019-08-28 17:54
閱讀 3032·2019-08-26 13:38
閱讀 2913·2019-08-26 12:19
閱讀 3617·2019-08-23 18:05
閱讀 1288·2019-08-23 17:04