길이가 짝수인 호출된 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