algorithm - 无向对状态

标签 algorithm optimization data-structures performance

我正在寻找一种“有效”的方法来在给定两个整数时保持二进制状态。给这两个整数 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/

相关文章:

java - 为什么这个算法的运行时间是 O(m+n)?

javascript - 列表树结构切换不起作用

java - 可互换的键/值 HashMap Set 结构

sql - HEXTORAW() 函数如何工作?算法是什么?

javascript - 在 shell 排序中为受影响的值添加样式?

c++ - 如果我有一个固定大小的填充 ascii 数字的字符数组,我知道它指的是一个无符号整数,那么将它转换成这样的最快方法是什么?

javascript - 迭代所有 DOM 元素的最有效方法

python - Django 管理列表显示优化查询集

c# - 缓存函数结果

algorithm - 具有平行边和自循环的 Dijkstra