길이가 짝수인 호출된 num의 배열이 있다고 가정하고 0 <=i <숫자의 크기/2.
따라서 입력이 nums =[4,-2,2,-4]와 같으면 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
cnt :=숫자의 모든 요소와 해당 빈도 값을 포함하는 맵
-
절대값을 기준으로 정렬된 정렬된 목록 cnt의 각 x에 대해 다음을 수행합니다.
-
cnt[x]> cnt[2 * x]이면
-
거짓을 반환
-
-
cnt[2 * x] :=cnt[2 * x] - cnt[x]
-
-
참을 반환
예
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
from collections import Counter
def solve(nums):
cnt = Counter(nums)
for x in sorted(cnt, key=abs):
if cnt[x] > cnt[2 * x]:
return False
cnt[2 * x] -= cnt[x]
return True
nums = [4,-2,2,-4]
print(solve(nums)) 입력
[6,0,8,2,1,5]
출력
True