//回调
- (void)start {
_needResultArr = [NSMutableArray array];
NSMutableArray* result = [NSMutableArray array];
NSMutableArray* array_data = [NSMutableArray arrayWithObjects:
@[@"1", @"3", @"5"],
@[@"2", @"4"],
@[@"10", @"20", @"30", @"40"], nil];
[self combine:result data:array_data curr:0 count:(int)array_data.count];
NSLog(@" \n%@ ",_needResultArr);
}
- (void)combine:(NSMutableArray *)result data:(NSArray *)data curr:(int)currIndex count:(int)count {
if (currIndex == count) {
[_needResultArr addObject:[result mutableCopy]];
[result removeLastObject];
}else {
NSArray* array = [data objectAtIndex:currIndex];
for (int i = 0; i < array.count; ++i) {
[result addObject:[array objectAtIndex:i]];
//进入递归循环
[self combine:result data:data curr:currIndex+1 count:count];
if ((i+1 == array.count) && (currIndex-1>=0)) {
[result removeObjectAtIndex:currIndex-1];
}
}
}
}