2026-01-01 Daily Challenge
Today I have done leetcode's January LeetCoding Challenge with cpp.
January LeetCoding Challenge 1
Description
Plus One
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.
Example 1:
Input: digits = [1,2,3] Output: [1,2,4] Explanation: The array represents the integer 123. Incrementing by one gives 123 + 1 = 124. Thus, the result should be [1,2,4].
Example 2:
Input: digits = [4,3,2,1] Output: [4,3,2,2] Explanation: The array represents the integer 4321. Incrementing by one gives 4321 + 1 = 4322. Thus, the result should be [4,3,2,2].
Example 3:
Input: digits = [9] Output: [1,0] Explanation: The array represents the integer 9. Incrementing by one gives 9 + 1 = 10. Thus, the result should be [1,0].
Constraints:
1 <= digits.length <= 1000 <= digits[i] <= 9digitsdoes not contain any leading0's.
Solution
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int carry = 1;
for(auto it = digits.rbegin(); carry && it != digits.rend(); ++it) {
int curVal = *it + carry;
carry = curVal / 10;
*it = curVal % 10;
}
if(carry == 1) {
digits.insert(digits.begin(), 1, 1);
}
return digits;
}
};
// Accepted
// 112/112 cases passed (0 ms)
// Your runtime beats 100 % of cpp submissions
// Your memory usage beats 50.17 % of cpp submissions (11.6 MB)