作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在寻找一种“有效”的方法来在给定两个整数时保持二进制状态。给这两个整数 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/
我是一名优秀的程序员,十分优秀!