确实在开发的过程中,似乎感觉算法离我们挺远的,其实并不遥远。
先来看这个问题:
有一个数组,请将这个数组中连续的同种数据类型的数据放到一个数组中,并且将这些数组依次放进一个数组中。
效果如下图所示(array 是原始数组, sortArray 是最终的数组)
image.png
那么问题来了:如果是你,你会如何实现?
这是我的实现方式,请看代码(故意不加注释):
- (NSArray*)arraySortWithArray:(NSArray*)array {
if (array.count <= 1) {
return array;
}
NSMutableArray* arrM = [NSMutableArray array];
for (NSObject* obj in array) {
NSMutableArray* subArrM = nil;
if (arrM.count == 0) {
subArrM = [NSMutableArray array];
[arrM addObject:subArrM];
} else {
subArrM = arrM.lastObject;
if (![obj.class isEqual:[subArrM.lastObject class]]) {
subArrM = [NSMutableArray array];
[arrM addObject:subArrM];
}
}
[subArrM addObject:obj];
}
return arrM.copy;
}
到现在为止,自认为以上就是最优解了【偷笑五分钟、沉思一小时】。
网友评论