有一组数组 想得到里面最大值的个数。实现nslog之后显示只有一个最大的值NSArray *sortArray =  initWithObjects:@"1",@"3",@"4",@"7",@"8",@"2",@"6",@"5",@"13",@"15",@"12",@"200",@"28",@"200",@"200",nil];
     
   NSNumber * max = [sortArray valueForKeyPath:@"@max.floatValue"];
     
    NSLog(@"-------%@",max);nslog 结果是-------200
我想算里面到底有几个最大值并输出。 如果这个不行还要什么其他的办法吗?

解决方案 »

  1.   

        NSArray *sortArray =  @[@"1",@"3",@"4",@"7",@"8",@"2",@"6",@"5",@"13",@"15",@"12",@"200",@"28",@"200",@"200"];
        sortArray = [sortArray sortedArrayUsingComparator:^NSComparisonResult(NSString* left, NSString* right) {
            return [left integerValue] < [right integerValue] ? NSOrderedDescending : NSOrderedAscending;
        }];
        
        NSInteger maxVal = [sortArray[0] integerValue];
        __block NSInteger maxCount = 0;
        [sortArray enumerateObjectsUsingBlock:^(NSString* value, NSUInteger idx, BOOL *stop) {
            if (maxVal==[value integerValue]) {
                maxCount++;
            } else {
                *stop = YES;
            }
        }];    NSLog(@"max count: %d", maxCount);方法比较笨,但可行