-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path66.Plus_One.rb
More file actions
30 lines (25 loc) · 761 Bytes
/
66.Plus_One.rb
File metadata and controls
30 lines (25 loc) · 761 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Given a non-empty array of digits representing a non-negative integer,
# plus one to the integer.
# The digits are stored such that the most significant digit is at the head of
# the list, and each element in the array contain a single digit.
# You may assume the integer does not contain any leading zero, except the
# number 0 itself.
# @param {Integer[]} digits
# @return {Integer[]}
def plus_one(digits)
digits[-1] += 1
digits.reverse!
digits.each_index do |i|
if digits[i] == 10
digits[i] = 0
if i == digits.length - 1
digits << 1
else
digits[i + 1] += 1
end
end
end
digits.reverse!
end
# p plus_one([4,3,2,9])
# p plus_one([9,9])