สมมติว่าเรามีรายการจำนวนเต็มที่เรียกว่า n ซึ่งใช้แทนเลขฐานสิบ และ n[i] อยู่ระหว่าง [0, 9] ดังนั้น ถ้า n คือ [2, 4, 9] แทนตัวเลข 249 เราต้องหารายการเดียวกันในการแสดงเดียวกัน ยกเว้นการแก้ไขเพื่อให้เพิ่ม 1 ลงในตัวเลข
ดังนั้น หากอินพุตเป็น n =[9,9] เอาต์พุตจะเป็น [1, 0, 0]
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
n :=เพิ่ม 0 ที่จุดเริ่มต้นของ n
-
เพิ่มองค์ประกอบสุดท้ายของ n ขึ้น 1
-
สำหรับฉันในช่วงขนาด n - 1 ถึง 0, ลดลง 1 ทำ
-
n[i-1] :=n[i-1] + ผลหารของ (n[i] / 10)
-
n[i] :=n[i] mod 10
-
-
คืนค่า n ถ้า n[0]> 0 มิฉะนั้น n จากดัชนี 1 ถึงสิ้นสุด
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, n): n = [0] + n n[-1] += 1 for i in range(len(n) - 1, 0, -1): n[i-1] += n[i] // 10 n[i] = n[i] % 10 return n if n[0] > 0 else n[1:] ob = Solution() print(ob.solve([9,9]))
อินพุต
[9,9]
ผลลัพธ์
[1, 0, 0]