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