摘要:不過這里有個小技巧,因為我們只要加,所以不用完全模擬加法的所有規則一個數如果不是,那加以后不會對其他位產生影響。
Plus One
遇九置零法 復雜度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)
思路簡單的加法運算。這里需要注意的是,數字的最高位的下標是0,最低位下標是length-1,所以我們要從后向前模擬加法。不過這里有個小技巧,因為我們只要加1,所以不用完全模擬加法的所有規則:一個數如果不是9,那加1以后不會對其他位產生影響。根據這個思路,我們先把末尾所有連續的9置0,然后對從后往前第一個不是9的數加1就行了。如果越界的話,說明原數全是9,那就要建個新數組存放結果。
注意System.arraycopy(src, 0, dst, 0, length) 可以用來高效拷貝數組
代碼public class Solution { public int[] plusOne(int[] digits) { int i = digits.length - 1; // 從后向前把所有連續9置0,直到不是9 while(i >= 0 && digits[i] == 9){ digits[i] = 0; i--; } // 如果越界,則拷貝一個新數組并在最前面置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的數字加1就行了 digits[i] += 1; return digits; } } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64583.html
摘要:加一給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一。示例輸入輸出解釋輸入數組表示數字。思路指針從最后往前移動,若值為逐個加一,并賦值。不等于則退出循環。首位如果為是則證明需要進一。只需首位賦值即可。 加一 給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一。 最高位數字存放在數組的首位, 數組中每個元素只存儲一個數字。 你可以假設除了整數 0 之外,這個...
摘要:加一給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一。示例輸入輸出解釋輸入數組表示數字。思路指針從最后往前移動,若值為逐個加一,并賦值。不等于則退出循環。首位如果為是則證明需要進一。只需首位賦值即可。 加一 給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一。 最高位數字存放在數組的首位, 數組中每個元素只存儲一個數字。 你可以假設除了整數 0 之外,這個...
摘要:題目要求一個非負整數被表示為一個數組,數組中每一個元素代表該整數的一個位。數組的下標越小,代表的位數越高。現在對該數組做加一運算,請返回結果數組。 題目要求:一個非負整數被表示為一個數組,數組中每一個元素代表該整數的一個位。數組的下標越小,代表的位數越高?,F在對該數組做加一運算,請返回結果數組。 /** * @author rale * * Given a non-negativ...
摘要:題目詳情題目的意思是,給你一個用數組表示的一個非負整數。你需要返回這個整數加后,所對應的數組。解法一主要需要關注的點就在于,當末尾數字為的時候的進位情況。如果不需要進位了,則代表循環可以結束了。 題目詳情 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...
閱讀 4511·2021-09-22 14:57
閱讀 556·2019-08-30 15:56
閱讀 2658·2019-08-30 15:53
閱讀 2234·2019-08-29 14:15
閱讀 1684·2019-08-28 17:54
閱讀 553·2019-08-26 13:37
閱讀 3472·2019-08-26 10:57
閱讀 1041·2019-08-26 10:32