Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบว่าเราสามารถเข้าถึงตำแหน่งสุดท้ายจากดัชนี 0 ใน Python . ได้หรือไม่


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums ซึ่งแต่ละหมายเลขจะแสดงจำนวนการกระโดดสูงสุดที่เราสามารถทำได้ เราต้องตรวจสอบว่าเราสามารถเข้าถึงดัชนีสุดท้ายเริ่มต้นที่ดัชนี 0 ได้หรือไม่

ดังนั้น หากอินพุตเป็น nums =[2,5,0,2,0] เอาต์พุตจะเป็น True เนื่องจากเราสามารถข้ามจากดัชนี 0 ถึง 1 แล้วกระโดดจากดัชนี 1 ไปยังจุดสิ้นสุดได้

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้-

  • n :=ขนาดของ nums

  • arr :=อาร์เรย์ขนาด n และเติมเท็จ

  • arr[n - 1] :=จริง

  • สำหรับฉันอยู่ในช่วง n - 2 ถึง 0, ลดลง 1 ทำ

    • arr[i] :=true หาก arr[จากดัชนี i + 1 ถึง i + nums[i]] อันใดอันหนึ่งเป็นจริง

  • กลับ arr[0]

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

class Solution:
   def solve(self, nums):
      n = len(nums)
      arr = [False] * n
      arr[n - 1] = True
      for i in range(n - 2, -1, -1):
         arr[i] = any(arr[i + 1 : i + nums[i] + 1])
      return arr[0]
ob = Solution()
nums = [2,5,0,2,0]
print(ob.solve(nums))

อินพุต

[2,5,0,2,0]

ผลลัพธ์

True