我正在寻找一种“有效”的方法来在给定两个整数时保持二进制状态。给这两个整数 A 和 B,A 总是小于 B,它们包含的值的范围是 0 到 N。整数 N 将大于 2 且小于 256。
简单的解决方案是创建一个 bool 值的二维数组,但这会留下超过一半的数组未使用,因为当 B 小于或等于 A 时存在未使用的值。
有谁知道使用更少内存但仍然“快”的方法吗?
最佳答案
与其创建正方形的二维数组,不如创建三角形的二维数组。例如,如果 N 为 3,则您的数组将是(让第一个索引为 B 的值,第二个为 A 的值):
boolean[][] array = {{},{false},{false,false}};
数组[0][0] 不存在,因为 B = 0 且 A = 0
array[1][0] 存在是因为 B = 1 且 A = 0
关于algorithm - 无向对状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282286/