int[][] table = {{1,2},{3,4,5},{6,7,8,9},{10,11,12,13,14}};
做排列組合,規則為每3個数字一個組合,且這3個数字一定要不在同一個组里,
有效率高的方法吗??

解决方案 »

  1.   

    我觉得对于该table,可以用一个4位的6进制数来做!
    对于这个4位:
    第一位表示第一组入选的数,比如0--没有,1--1,2--2
    第二位表示第二组入选的数,比如0--没有,1--3,2--4,3--5
    ……
    ……
    第四位表示第四组入选的数,比如0--没有,1--10,2--11,3--12,4--13,5--14
    这样,从最小的符合题意的6进制数0111开始,每次进行++操作,找出所有四位数中恰好有一位为0的数,然后按照它所表示的组合输出就行!