In this Leetcode Plus One Problem Solution You are given a large integer represented as an integer array digits, where each digits[i] is the ith digit of the integer. The digits are ordered from most significant to least significant in left-to-right order. The large integer does not contain any leading 0's.
Increment the large integer by one and return the resulting array of digits.
Problem solution in Python.
class Solution(object):
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
digits = "".join([str(i) for i in digits])
cal = str(int(digits)+1)
return [int(i) for i in cal]
Problem solution in Java.
public int[] plusOne(int[] digits) {
for(int i=digits.length-1; i>=0; i--){
if(digits[i]!=9){
digits[i]++;
break;
}
if(i==0){
digits = new int[digits.length+1];
digits[0]=1;
return digits;
}
digits[i]=(digits[i]+1)%10;
}
return digits;
}
Problem solution in C++.
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int c = 1;
for(int i = digits.size() - 1; i >= 0; i--) {
digits[i] += c;
c = digits[i] / 10;
digits[i] %= 10;
}
if(c)
digits.insert(digits.begin(), 1);
return digits;
}
};
Problem solution in C.
int* plusOne(int* digits, int digitsSize, int* returnSize){ int originSize = digitsSize; for(int i = digitsSize-1; i>=0; i--){ if(digits[i]==9){ digits[i] = 0; }else{ digits[i]++; break; } } if(digits[0] == 0){ digitsSize++; } *returnSize = digitsSize; int* returnArr = (int*)malloc(digitsSize * sizeof(int)); if(originSize == digitsSize){ for(int i = digitsSize-1; i>=0; i--){ returnArr[i] = digits[i]; } }else{ for(int i = digitsSize-1; i>0; i--){ returnArr[i] = digits[i-1]; } returnArr[0] = 1; } return returnArr; }
0 Comments