ปัญหา python จาก codingbat:array123

จากแบบฝึกหัดนี้ https://codingbat.com/prob/p193604

Given an array of ints, return True if the sequence of numbers 1, 2, 3 appears in the array somewhere.
array123([1, 1, 2, 3, 1]) → True
array123([1, 1, 2, 4, 1]) → False
array123([1, 1, 2, 1, 2, 3]) → True

เฉลยคือ
def array123(nums):
  # Note: iterate with length-2, so can use i+1 and i+2 in the loop
  for i in range(len(nums)-2):
    if nums==1 and nums[i+1]==2 and nums[i+2]==3:
      return True
  return False

เราสงสัยว่าทำไม range(len(nums)) ต้อง -2 คะ ปกติเคยเจอแค่ใส่ -1
อย่างอันนี้ [1, 1, 2, 1, 2, 3] ถ้า -1 rangeก็จะเริ่มตั้งแต่ตัวแรกแล้วจบที่ตัวสุดท้าย แต่พอเป็น-2 เลยเริ่มงงค่ะ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่