package main
import (
"fmt"
)
func plusOne(A []int) []int {
carry := 1
for i := len(A) - 1; i >= 0; i-- {
A[i] = A[i] + carry
carry = A[i] / 10
A[i] = A[i] % 10
}
var Ap1 []int
if carry > 0 {
Ap1 = append([]int{carry}, A...)
} else {
Ap1 = A
}
firstNonZero := 0
for firstNonZero = range Ap1 {
if Ap1[firstNonZero] != 0 {
break
}
}
return Ap1[firstNonZero:]
}
func main() {
fmt.Println(plusOne([]int{0, 0, 9}))
}
System Design for Beginners
A masterclass that helps early engineers and product managers become great at designing scalable systems.
180+ learners
Details →System Design Masterclass
A masterclass that helps you become great at designing scalable, fault-tolerant, and highly available systems.
1000+ learners
Details →Redis Internals
Learn internals of Redis by re-implementing some of the core features in Golang.
98+ learners
Details →