美文网首页
算法&数组重排(一)

算法&数组重排(一)

作者: CoderHG | 来源:发表于2018-07-11 20:11 被阅读64次

    确实在开发的过程中,似乎感觉算法离我们挺远的,其实并不遥远。

    先来看这个问题:

    有一个数组,请将这个数组中连续的同种数据类型的数据放到一个数组中,并且将这些数组依次放进一个数组中。

    效果如下图所示(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;
    }
    

    到现在为止,自认为以上就是最优解了【偷笑五分钟、沉思一小时】。

    你还有更好的方式么?

    相关文章

      网友评论

          本文标题:算法&数组重排(一)

          本文链接:https://www.haomeiwen.com/subject/pakhpftx.html