我希望编写一个函数,它可以接受任意数量的NSArray对象,并返回该数组成员所有可能完整组合的嵌套数组。
正如在回答这个问题时告诉我的那样,我需要创建一个二分图或更精确地说,一个完全二分图。
例如,如果我有两个数组:
我希望有一个函数,可以接收一个包含多个数组的数组作为参数:
随着这些数组中对象的数量增加,结果数量也会呈指数级增长。我可能会将此方法作为NSArray的类别。另外,我希望结果都具有相同的长度。也就是说,如果有三个源数组,则该方法返回的每个嵌套数组的长度应为三。
你有什么优雅的方法来实现这个?
正如在回答这个问题时告诉我的那样,我需要创建一个二分图或更精确地说,一个完全二分图。
例如,如果我有两个数组:
NSArray *a1 = [NSArray arrayWithObjects:@"Blue", @"Green", @"Yellow", nil];
NSArray *a2 = [NSArray arrayWithObjects:@"Apple", @"Orange", @"Pear", nil];
我希望有一个函数,可以接收一个包含多个数组的数组作为参数:
NSArray *nestedArray = [NSArray arrayWithObjects:a1, a2, nil];
并返回相同长度的所有可能组合的数组。因此,在这个例子中,我想要一个类似于以下内容的数组:
[
[@"Blue", @"Apple"],
[@"Blue", @"Orange"],
[@"Blue", @"Pear"],
[@"Green", @"Apple"],
[@"Green", @"Orange"],
[@"Green", @"Pear"],
[@"Yellow", @"Apple"],
[@"Yellow", @"Orange"],
[@"Yellow", @"Pear"]
]
随着这些数组中对象的数量增加,结果数量也会呈指数级增长。我可能会将此方法作为NSArray的类别。另外,我希望结果都具有相同的长度。也就是说,如果有三个源数组,则该方法返回的每个嵌套数组的长度应为三。
你有什么优雅的方法来实现这个?