首页 > 编程知识 正文

三个人的组合,用pld可以实现任何组合逻辑函数

时间:2023-05-04 16:47:39 阅读:111835 作者:2620

33559 www.now coder.com/practice/4d0a 110416 d 84 c7f 9454 d0da 53 a b2d a 1? tpid=46 tqid=29101 tpage=4rp=4ru=/ta/leetcodeqru=/ta/leet code/question-ranking

追溯检索就可以了。 但是,请注意,为了防止重复,例如在3个数字中选择2个数字。 为了不产生1 3和3 1那样的结果,选择数字时从前面选择的数字的下一位中选择。

类解决方案{ public : vectorvectorintcombine (intn,int k ) { vectorvectorint res; if(n=0||k=0)返回RES; vectorboolxddch(n1; //标记是否使用过数字的vectorinttemp; DFS(0、n、k、0、xddch、temp、res ); 返回RES; }//pos表示最后选择的数字的位置,n,k是n个数字,k个数字voidDFS(intpos,int n,int k,int now,vectorbool xddch,vectorint temp,vectorverver (if ) n-posk-now )//剪枝。 剩下的数字不够(k-now )为返回; //从下一个位置选择。 避免1 3和3 1的重复的for(intI=pos1; i=n; I ) if (! XDDch[I](//数字I为xddch[i]=true; TEMP.push_back(I; 放入//NOW; //选择的数量为int tmp_pos=i; DFS(tmp_pos,n,k,now,xddch,temp,res ); //上溯xddch[i]=false; temp.pop_back (; now----; }}};

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。