LeetCode 솔루션					분류
				
						[11/27] 446. Arithmetic Slices II - Subsequence
본문
Hard
159493Add to ListShareGiven an integer array nums, return the number of all the arithmetic subsequences of nums.
A sequence of numbers is called arithmetic if it consists of at least three elements and if the difference between any two consecutive elements is the same.
- For example, [1, 3, 5, 7, 9],[7, 7, 7, 7], and[3, -1, -5, -9]are arithmetic sequences.
- For example, [1, 1, 2, 5, 7]is not an arithmetic sequence.
A subsequence of an array is a sequence that can be formed by removing some elements (possibly none) of the array.
- For example, [2,5,10]is a subsequence of[1,2,1,2,4,1,5,10].
The test cases are generated so that the answer fits in 32-bit integer.
Example 1:
Input: nums = [2,4,6,8,10] Output: 7 Explanation: All arithmetic subsequence slices are: [2,4,6] [4,6,8] [6,8,10] [2,4,6,8] [4,6,8,10] [2,4,6,8,10] [2,6,10]
Example 2:
Input: nums = [7,7,7,7,7] Output: 16 Explanation: Any subsequence of this array is arithmetic.
Constraints:
- 1 <= nums.length <= 1000
- -231 <= nums[i] <= 231 - 1
Accepted
49,066
Submissions
120,562
				태그
				#Dunzo			
			관련자료
- 
			링크
			댓글 1
					
			학부유학생님의 댓글
- 익명
- 작성일
					
										
					Runtime: 3267 ms, faster than 24.85% of Python3 online submissions for Arithmetic Slices II - Subsequence.
Memory Usage: 185.7 MB, less than 14.20% of Python3 online submissions for Arithmetic Slices II - Subsequence.
				
													
								Memory Usage: 185.7 MB, less than 14.20% of Python3 online submissions for Arithmetic Slices II - Subsequence.
from collections import defaultdict
class Solution:
    def numberOfArithmeticSlices(self, nums: List[int]) -> int:
        dp = defaultdict(int)
        res = 0
        
        for e in range(1, len(nums)):
            for s in range(e):
                diff = nums[e] - nums[s]
                res += dp[(s, diff)]
                dp[(e, diff)] += dp[(s,diff)] + 1
        
        return res 
								 
							







