dfs*_*fsf 3 algorithm cocoa-touch objective-c ios
假设我有一个名为(NSArray)的数组arrayA -> {@"A", @"B", @"C", @"D", @"E"}.我有另一个数组(NSArray)调用arrayB -> {@"D", @"E", @"F", @"G", @"H"}.
对于我来说,获得两个数组的最有效方法是:1.一个数组是两个数组的子集,因此在这种情况下它将是{@"D",@"E"}和arrayB中唯一的子集,所以{@"F",@"G",@"H"}.
如果你看一下这张图表会更容易:http://theconsigliori.com/blog/wp-content/uploads/2009/09/venn-diagram.jpg
A和B是数组,我想获得2个数组, 1. A&B 2. B-(A&B).
我正在使用objective-c/cocoa-touch,但欢迎任何一般的想法.该阵列将长约6000个元素,我在iPad上这样做.
谢谢!
alb*_*amg 10
两个数组的交集:
NSMutableSet *intersectionDict = [NSMutableSet setWithArray:arrayA];
[intersectionDict intersectSet:[NSSet setWithArray:arrayB]];
NSArray *intersectionArray = [intersectionDict allObjects];
Run Code Online (Sandbox Code Playgroud)
arrayB中对象的子集在arrayA中不存在:
NSMutableArray *arrayC = [NSMutableArray arrayWithArray:arrayB];
[arrayC removeObjectsInArray:arrayA];
Run Code Online (Sandbox Code Playgroud)