My code:
public class Solution {
public int[] plusOne(int[] digits) {
if (digits == null || digits.length == 0)
return null;
int[] plusOne = new int[digits.length + 1];
int carry = 1;
for (int i = digits.length; i >=0; i--) {
if (i > 0) {
int temp = digits[i - 1];
temp = temp + carry;
if (temp >= 10) {
temp = temp - 10;
carry = 1;
plusOne[i] = temp;
}
else {
plusOne[i] = temp;
carry = 0;
}
}
else {
if (carry == 1)
plusOne[i] = 1;
else {
int[] copy = new int[digits.length];
for (int j = 0; j < digits.length; j++)
copy[j] = plusOne[j + 1];
plusOne = copy;
}
}
}
return plusOne;
}
public static void main(String[] args) {
Solution test = new Solution();
int[] digits = {0};
System.out.println(test.plusOne(digits));
}
}
My test result:
這次題目不是很難疗锐。就類似于自己寫一個加法器。把每個數(shù)逐漸加上去爱榕,并且通過 carry進位來實現(xiàn)加法器阵幸。
**
總結:加法器花履。
感覺妹子的擔子很大,我現(xiàn)在可能還能陪她聊聊挚赊,等我出去了诡壁,基本都得她一個人來面對了。不知道該說什么荠割,因為說什么妹卿,我也幫不了什么,做不了什么蔑鹦。
一句話吧夺克,希望你好運,一切平安举反。
**
Anyway, Good luck, Richardo!
My code:
public class Solution {
public int[] plusOne(int[] digits) {
if (digits == null || digits.length == 0)
return null;
int s = 1;
for (int i = digits.length - 1; i >= 0; i--) {
if (digits[i] + s <= 9) {
digits[i] += s;
s = 0;
}
else {
int sum = (digits[i] + s);
digits[i] = sum % 10;
s = sum / 10;
}
}
/** copy original digits and extend it */
if (s >= 1) {
int[] ret = new int[digits.length + 1];
for (int i = ret.length - 1; i >= 1; i--)
ret[i] = digits[i - 1];
ret[0] = s;
return ret;
}
else
return digits;
}
}
很簡單的一道題目懊直,錯了好幾次扒吁,一開始理解錯題意了火鼻,以為是二進制的。
Anyway, Good luck, Richardo!