每日一题 二倍数对数组
954. 二倍数对数组
给定一个长度为偶数的整数数组 arr,只有对 arr 进行重组后可以满足
“对于每个 0 <= i < len(arr) /
2,都有arr[2 * i + 1] = 2 * arr[2 * i]
时,返回
true;否则,返回 false。
示例:
输入:arr = [3,1,3,6]
输出:false
输入:arr = [2,1,2,6]
输出:false
输入:arr = [4,-2,2,-4]
输出:true
解释:可以用 [-2,-4] 和 [2,4] 这两组组成 [-2,-4,2,4] 或是 [2,4,-2,-4]
思路:
我们用哈希表记录每个数出现的次数,然后排序,计算当前数的 2 倍, 负数为除 2, 正数为乘 2。
如果存在这个数,并且这个数的哈希值不为0,则在哈希表中数量减一。
1 | class Solution { |