我很熟悉子集是什么,但我很难理解下面有两个子集?有人可以指出我们如何只获得两个子集。我只是觉得它会有更多的子集。
数字m被定义为A的一些子集S的大小,其中每个元素覆盖不间断的整数范围;也就是说,如果你要对S中的元素进行排序,那么任何元素j和j + 1之间的差异都是0或1.例如A = {5,4,4,8,8}给出了一个子集{4,4,5}和{8,8};这些子集的m值分别为3和2。
答案 0 :(得分:1)
关键声明是:
任何元素j和j + 1之间的差异是0或1
所以,对于
A = {5,4,4,8,8}
A被排序,当你遍历元素时,如果当前元素和下一个元素(j和j + 1)在彼此的0或1之间,它们属于子集。
因此,当你遍历时:
A[0]=5 and A[1] = 4 : difference 1 - add to subset {5,4}
A[1]=4 and A[2]= 4 : difference 0 - add to subset {5,4,4}
A[2]=4 and A[3] = 8: difference is 4 - Start new subset {8}
A[3] = 8 and A[4] = 8] : difference is 0 - Add to subset {8,8}