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