Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
Selected Reading
Program to find array of doubled pairs using Python
Suppose we have an array of called nums whose length is even, we have to check whether it is possible to reorder it in such a way that nums[2*i + 1] = 2*nums[2*i] for every 0
So, if the input is like nums = [4,-2,2,-4], then the output will be True.
To solve this, we will follow these steps −
cnt := a map containing all elements in nums and their frequency values
-
for each x in the sorted list cnt which is sorted based on their absolute values, do
-
if cnt[x] > cnt[2 * x], then
return False
cnt[2 * x] := cnt[2 * x] - cnt[x]
-
return True
Example
Let us see the following implementation to get better understanding −
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))
Input
[6,0,8,2,1,5]
Output
True
Advertisements
