我一直在为这个问题绊绊(例如在这个问题中)。以原始整数类型数组(例如的数组)的形式给定2D位矩阵/板/数组long
。为简单起见,我们可以假设一个方阵,例如,long
在具有64位的平台上,由64个值组成的数组long
。
让我们x[i]
为0 <= i < 64
是输入数组。计算数组y[i]
以0 <= i <= 64
使:
(x[i] >> j) & 1 == (y[j] >> i) & 1
这x >> i
是x
by i
位的按位右移,&
是和,x[i]
是i
array 中第th个位置的值x
。
如何实现最有效地将数组映射x
到数组的功能y
?
我主要是在寻找非破坏性的方法,这些方法会使输入数组x
保持完整。
使用的编程语言应具有整数类型的数组和按位运算。许多语言都满足这些要求。C / C ++和Java解决方案看起来非常相似,所以让我们选择这些语言。