소프트웨어에 대한 모든 것

LeetCode 풀기 - 413. Arithmetic Slices 본문

알고리즘/LeetCode

LeetCode 풀기 - 413. Arithmetic Slices

앤테바 2022. 3. 9. 22:24
반응형

413. Arithmetic Slices

https://leetcode.com/problems/arithmetic-slices/

 

Arithmetic Slices - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제)

솔루션1)

class Solution:
    def numberOfArithmeticSlices(self, nums: List[int]) -> int:
        """
        Time Complexity : O(N^2)
        Space Complexity : O(1)
        """
        count = 0
        for i in range(len(nums) - 2):
            diff = nums[i] - nums[i+1]
            for j in range(i+2, len(nums)):
                diff2 = nums[j-1] - nums[j]
                if diff == diff2:
                    count += 1
                else:
                    break
        return count

솔루션2)

시간 복잡도 : O(N)

공간 복잡도 : O(1)

class Solution:
    def numberOfArithmeticSlices(self, nums: List[int]) -> int:
        count = 0
        total = 0
        for i in range(2, len(nums)):
            if (nums[i-2] - nums[i-1]) == (nums[i-1] - nums[i]):
                count += 1
                total += count
            else:
                count = 0
        return total

 

반응형
Comments