Leetcode 솔루션: 자기를 제외한 어레이의 제품

3332 단어
다음은 문제의 텍스트입니다.

정수 배열 nums가 주어지면 answer[i]가 nums[i]를 제외한 nums의 모든 요소의 곱과 같은 배열 답을 반환합니다.

숫자의 접두사 또는 접미사의 곱은 32비트 정수에 맞도록 보장됩니다.

나누기 연산을 사용하지 않고 O(n) 시간에 실행되는 알고리즘을 작성해야 합니다.

내 다른 솔루션은 다음과 같습니다.


class Solution(object):
    def productExceptSelf(self, nums):

        p = 1

        zeroCount = 0

        if all([num == 0 for num in nums]):
            return nums

        for num in nums:
            if num == 0:
                zeroCount += 1
                continue
            p *= num 

        p = p if zeroCount < 2 else 0

        res = []

        includeZero = 0 in nums

        for num in nums:
            if num == 0:
                res.append(p)

            elif includeZero:
                res.append(0)
            elif num != 0:
                res.append(p/num)


        return res

좋은 웹페이지 즐겨찾기