报警类型分为 1,2,3,4,5,6,7,8,9等等,数据结构
简单认为(int 类型,int 状态) ,类型为1,2,3,4,5,6.。。。 状态为 0,1分别代表报警发生和报警恢复
报警模板 A(1,2), B(1,3,4), C(2,4) 等,说明一下,模板A,当报警类型为1和2的同时来的,就满足模板A,也就是A报警产生。
像这种情况。1,2,3,4都来了,也就是
(1,0),
(2,0)产生 了 A
(3,0)
(4,0)产生了B,产生了C
如果
来的是
(1,0)
(2,0)产生A
(3,0)
(3,1)
(4,0)产生C
另外还要支持用户之定义模板。
问题大致描述为上,还没有想到好得算法,大家帮出下主意。着急用,谢谢了。
------最佳解决方案--------------------------------------------------------
对报警类型做一MAP,KEY为报警类型,值为引用数,产生报警引用数+1,恢复-1
当来了报警或恢复报警时进行引用值的+-操作
用报警模板里的类型去取引用值,如果引用值全为1则产生报警模板
以上算法效率不会是问题
------其他解决方案--------------------------------------------------------
帮顶