OC 计算幂集 - 递归法

 

   [self powersetArray:[NSMutableArray arrayWithArray:@[@"1",@"2",@"3",@"4"]] index:0 set:[NSMutableArray array]];



- (void)powersetArray:(NSMutableArray *)array index:(NSInteger)index set:(NSMutableArray *)set {

    

    NSMutableArray *temp = [NSMutableArray array];

    temp = [NSMutableArray arrayWithArray:set];

    if (index >= array.count) {

        

        NSLog(@"set = %@",set);

        

    } else {

        

        [self powersetArray:array index:index + 1 set:temp]; // 每次需要set完整的版本       

        [temp addObject:array[index]]; // 每次将temp数组的部分元素加到temp中

        [self powersetArray:array index:index + 1 set:temp];   // //temp成为新的set

        //如果powerset的是时候一直i+1就等于把set数组一直置空

    }

}

 

转载于:https://my.oschina.net/zhuzhu1223/blog/1840383

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值