สมมติว่าเรามีอาร์เรย์ของจำนวนเต็ม คือ A A จะมี n องค์ประกอบ และเป็นจำนวนไม่ติดลบ อาร์เรย์ทั้งหมด A แทนตัวเลขใหญ่หนึ่งตัว เช่นถ้า A = [5, 3, 2, 4] แสดงตัวเลข 5324 เราต้องรับอาร์เรย์ A แล้วเพิ่มตัวเลขขึ้น 1 และคืนค่าตัวเลขเป็นอาร์เรย์เหมือนเดิม ดังนั้นหลังเพิ่ม A จะเป็น [5, 3, 2, 5]
วิธีการแก้ปัญหา
- รับอาร์เรย์และต่อตัวอักษรแต่ละตัวเป็นสตริงเพื่อทำให้เป็นสตริง
- แปลงสตริงเป็นจำนวนเต็ม แล้วเพิ่มตัวเลขขึ้น 1
- แยกแต่ละหลักแล้วทำเป็นอีกอาร์เรย์หนึ่ง
ตัวอย่าง (Python)
class Solution(object):
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
num = ""
for i in digits:
num += str(i)
num = int(num)
num += 1
num = str(num)
ans = []
for i in num:
ans.append(int(i))
return ans
digits = [5,3,2,4]
ob1 = Solution()
print(ob1.plusOne(digits))
อินพุต
digits = [5,3,2,4]
เอาต์พุต
[5,3,2,5]