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