美文网首页
求一个整数数组中和最大的连续子数组,例如:[1, 2, -4,

求一个整数数组中和最大的连续子数组,例如:[1, 2, -4,

作者: money_ac9e | 来源:发表于2018-05-22 19:43 被阅读0次

    最近碰到一个很有意思的计算题:

    求一个整数数组中和最大的连续子数组,例如:[1, 2, -4, 4, 10, -3, 4, -5, 1]的最大连续子数组是[4, 10, -3, 4](需写明思路,并编程实现)。

    现答案如下:

    /*

         思路:

         三个关键词:连续的  和  最大

         遍历 一个个取出来

         位置:

         0

         0 1

         0 1 2

         0 1 2 3

         0 1 2 3 4

         int all 数去和

         arr 需要的数组

         遍历数组1

         从0开始  到数组的位数-1

         遍历从上个循环初始值开始  到数组的位数-1

            每次都取出来 求和 all相比  >all 放入数组arr中

         */

        NSArray*createArr =@[@1,@2, @-4,@4,@10, @-3,@4, @-5,@1];

        NSMutableArray *arr = [[NSMutableArray alloc] init];

        NSMutableArray *arr2 = [[NSMutableArray alloc] init];

        NSNumber*min = [createArrvalueForKeyPath:@"@min.floatValue"];

        intall = [minintValue];

        //从0到最后一个

        for(inti =0; i < createArr.count; i++) {

            //移除数据

            [arr2removeAllObjects];

            //一次从i到最后一个

            inta =0;

            for(intj = i; j < createArr.count; j++) {

                //取值

                NSString*str = createArr[j];

                a += [strlongLongValue];

                [arr2addObject:str];

                NSLog(@"临时数组:%@,临时大小:%d。",arr2,a);

                //比较大小

                if(a>all) {

                    all = a;

                    //移除数据

                    [arrremoveAllObjects];

                    [arraddObjectsFromArray:arr2];

                }

            }

        }

        NSLog(@"最终数组:%@,最终大小:%d",arr,all);

                                                                    幸福是奋斗出来的!!!

    相关文章

      网友评论

          本文标题:求一个整数数组中和最大的连续子数组,例如:[1, 2, -4,

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