LeetCode Entry
66. Plus One
Increment big number
66. Plus One easy
blog post
substack
youtube

Join me on Telegram
https://t.me/leetcode_daily_unstoppable/1222
Problem TLDR
Increment big number #easy
Intuition
The simplest and robust solution is a separate container for result digits and a counter for carry.
Approach
- optimization: stop at first non-nine
- optimization: count suffix nines in a forward cache-friendly pass
Complexity
- Time complexity: \(O(n)\)
- Space complexity:
\(O(n)\)
Code
// 0ms fun plusOne(d: IntArray): IntArray { for (i in d.size-1 downTo 0) if (d[i]<9) {++d[i]; return d} else d[i]=0 return IntArray(d.size+1).also {it[0]=1} }// 0ms pub fn plus_one(mut d: Vec<i32>) -> Vec<i32> { let (mut c,n) = (0,d.len()); for &d in &d {if d < 9 {c=0} else {c+=1}} if c==n { let mut r = vec![0;c+1];r[0]=1; return r} d[n-c..n].fill(0); d[n-c-1] += 1; d }