我对矩阵有疑问。
有一个矩阵和一个段列表。 每个段都有一个名称,一个起点或终点以及一个值,该值描述了起点和终点是否指向矩阵的行或列。
可以有多个具有相同名称的段(但具有不同的起点和终点)。
现在我们有一个名单列表(a,b,c)。
任务是找到位置适合的每个矩阵位置(x,y) 进入具有列表名称的每个段的范围(起点和终点)。
这样做的方法是什么?
我需要这个来在KV图中找到逻辑表达式的位置。
答案 0 :(得分:2)
如果具有相同名称的间隔不重叠,则很容易想出具有复杂度O(r * c * n)的算法。 r = #rows,c = #columns,n = #names。
使用0s初始化r * c计数矩阵。
每个名字......
对于名称为...的每个时间间隔
将区间内的计数矩阵的所有值增加1。
迭代计数矩阵并返回count == n的所有单元格。
如果具有相同名称的间隔不重叠,那么每个名称n必须增加最多r * c值,因此复杂度为O(r * c * n),最后一步为+ r * c无所谓。