Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 숫자 목록에서 산술 시퀀스의 수를 찾는 프로그램?

<시간/>

nums라고 하는 숫자 목록이 있다고 가정하고 길이가 ≥ 3인 연속적인 산술 시퀀스의 수를 찾아야 합니다. 우리가 알고 있듯이 산술 시퀀스는 한 숫자와 다음 숫자의 차이가 동일한 숫자 목록입니다.

따라서 입력이 nums =[6, 8, 10, 12, 13, 14]와 같으면 다음과 같은 산술 시퀀스가 ​​있으므로 출력은 4가 됩니다. [6, 8, 10] [8, 10, 12] [6, 8, 10, 12] [12, 13, 14]

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • count :=0, ans :=0

  • 범위 2에서 숫자 크기까지의 i에 대해

    • nums[i] - nums[i - 1]이 nums[i - 1] - nums[i - 2]와 같으면

      • 개수 :=개수 + 1

    • 그렇지 않으면

      • ans :=ans + (count * (count + 1)) / 2의 몫

      • 개수 :=0

  • count가 0이 아니면

    • ans :=ans + 몫 (count *(count + 1)) / 2

  • 반환

더 나은 이해를 위해 다음 구현을 살펴보겠습니다.

예시

class Solution:
   def solve(self, nums):
      count = 0
      ans = 0
      for i in range(2, len(nums)):
         if nums[i] - nums[i - 1] == nums[i - 1] - nums[i - 2]:
            count += 1
         else:
            ans += (count * (count + 1)) // 2
            count = 0
      if count:
         ans += (count * (count + 1)) // 2
      return ans

ob = Solution()
nums = [6, 8, 10, 12, 13, 14]
print(ob.solve(nums))

입력

[6, 8, 10, 12, 13, 14]

출력

4