摘要:不過這里有個小技巧,因為我們只要加,所以不用完全模擬加法的所有規(guī)則一個數(shù)如果不是,那加以后不會對其他位產(chǎn)生影響。
Plus One
遇九置零法 復(fù)雜度Given a non-negative number represented as an array of digits, plus one to the number.
The digits are stored such that the most significant digit is at the head of the list.
時間 O(N) 空間 O(1)
思路簡單的加法運算。這里需要注意的是,數(shù)字的最高位的下標(biāo)是0,最低位下標(biāo)是length-1,所以我們要從后向前模擬加法。不過這里有個小技巧,因為我們只要加1,所以不用完全模擬加法的所有規(guī)則:一個數(shù)如果不是9,那加1以后不會對其他位產(chǎn)生影響。根據(jù)這個思路,我們先把末尾所有連續(xù)的9置0,然后對從后往前第一個不是9的數(shù)加1就行了。如果越界的話,說明原數(shù)全是9,那就要建個新數(shù)組存放結(jié)果。
注意System.arraycopy(src, 0, dst, 0, length) 可以用來高效拷貝數(shù)組
代碼public class Solution { public int[] plusOne(int[] digits) { int i = digits.length - 1; // 從后向前把所有連續(xù)9置0,直到不是9 while(i >= 0 && digits[i] == 9){ digits[i] = 0; i--; } // 如果越界,則拷貝一個新數(shù)組并在最前面置1 if(i < 0){ int[] res = new int[digits.length + 1]; System.arraycopy(digits, 0, res, 1, digits.length); res[0] = 1; return res; } else { // 否則,將第一個不是9的數(shù)字加1就行了 digits[i] += 1; return digits; } } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64583.html
摘要:加一給定一個由整數(shù)組成的非空數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。示例輸入輸出解釋輸入數(shù)組表示數(shù)字。思路指針從最后往前移動,若值為逐個加一,并賦值。不等于則退出循環(huán)。首位如果為是則證明需要進一。只需首位賦值即可。 加一 給定一個由整數(shù)組成的非空數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。 最高位數(shù)字存放在數(shù)組的首位, 數(shù)組中每個元素只存儲一個數(shù)字。 你可以假設(shè)除了整數(shù) 0 之外,這個...
摘要:加一給定一個由整數(shù)組成的非空數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。示例輸入輸出解釋輸入數(shù)組表示數(shù)字。思路指針從最后往前移動,若值為逐個加一,并賦值。不等于則退出循環(huán)。首位如果為是則證明需要進一。只需首位賦值即可。 加一 給定一個由整數(shù)組成的非空數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。 最高位數(shù)字存放在數(shù)組的首位, 數(shù)組中每個元素只存儲一個數(shù)字。 你可以假設(shè)除了整數(shù) 0 之外,這個...
摘要:題目要求一個非負(fù)整數(shù)被表示為一個數(shù)組,數(shù)組中每一個元素代表該整數(shù)的一個位。數(shù)組的下標(biāo)越小,代表的位數(shù)越高。現(xiàn)在對該數(shù)組做加一運算,請返回結(jié)果數(shù)組。 題目要求:一個非負(fù)整數(shù)被表示為一個數(shù)組,數(shù)組中每一個元素代表該整數(shù)的一個位。數(shù)組的下標(biāo)越小,代表的位數(shù)越高?,F(xiàn)在對該數(shù)組做加一運算,請返回結(jié)果數(shù)組。 /** * @author rale * * Given a non-negativ...
摘要:題目詳情題目的意思是,給你一個用數(shù)組表示的一個非負(fù)整數(shù)。你需要返回這個整數(shù)加后,所對應(yīng)的數(shù)組。解法一主要需要關(guān)注的點就在于,當(dāng)末尾數(shù)字為的時候的進位情況。如果不需要進位了,則代表循環(huán)可以結(jié)束了。 題目詳情 Given a non-negative integer represented as a non-empty array of digits, plus one to the in...
Problem Given a non-negative number represented as an array of digits, plus one to the number. The digits are stored such that the most significant digit is at the head of the list. Example Given [1,2...
閱讀 4604·2021-09-22 14:57
閱讀 565·2019-08-30 15:56
閱讀 2672·2019-08-30 15:53
閱讀 2245·2019-08-29 14:15
閱讀 1692·2019-08-28 17:54
閱讀 564·2019-08-26 13:37
閱讀 3484·2019-08-26 10:57
閱讀 1049·2019-08-26 10:32