2015-09-26 102 views
0

假设我有一个整数10.而我的NSMutableArray包含1到20个值。所以我必须从NSMutableArray中找到最大值10,意味着答案是11.将整数值与NSMutableArray进行比较,找到最大值

我知道如何找到最大值。

int max = [[numbers valueForKeyPath:@"@max.intValue"] intValue]; 

但我不知道如何比较并从数组中找到最大数目。我可以使用for循环来查找,但有没有像上面的更快的解决方案?

+0

参考它希望它会帮助你.. http://stackoverflow.com/questions/25238072/find-the-largest-number-from-nsarray-那是小于给定数 –

+0

意味着你想从数组中找到10个最大数? –

+0

谢谢@PrashantTukadiya ..... –

回答

3
NSArray *_timesArray = @[@1, @23, @57, @59, @120]; 
NSTimeInterval currentTime = 109; 
NSInteger playerTime=currentTime; 
NSUInteger index = [_timesArray indexOfObject:@(playerTime) 
           inSortedRange:NSMakeRange(0, _timesArray.count-1) 
             options:NSBinarySearchingFirstEqual | NSBinarySearchingInsertionIndex 
           usingComparator:^(id a, id b) { 
            return [a compare:b]; 
           }]; 
NSLog(@"Index: %lu", (unsigned long)index); 

你的回答是4;

2

假设你的数组是这样的。

NSMutableArray *numbers = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20", nil]; 

并声明你的号码是这样的。

int max = 11; 
int find; 

这里max是你的静态声明。并找到你的结果最大数量。

for(int i = 0;i<numbers.count;i++) 
{ 
    if(max < [[numbers objectAtIndex:i]intValue]) 
    { 
     find = [[numbers objectAtIndex:i]intValue]; 
     NSLog(@"%d",find); 
     break; 
    } 
} 

这样做。

+0

我不想用循环.... –

0

试试这个:

NSMutableArray *numbers = [[NSMutableArray alloc] initWithObjects:@"20", @"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", @"10", @"11", @"12", @"13", @"14", @"15", @"16", @"17", @"18", @"19", @"20", nil]; 
    int minimum = 10; 
    int nextNumber = [[numbers valueForKeyPath:@"@max.intValue"] intValue]; 

    for(int i = 0;i<numbers.count;i++) 
    { 
     if([[numbers objectAtIndex:i] intValue] > minimum) { 
      if([[numbers objectAtIndex:i] intValue] < nextNumber) { 
       nextNumber = [[numbers objectAtIndex:i] intValue]; 
      } 
     } 
    } 

    NSLog(@"Maxmimum number right after %d from whole array is: %d",minimum, nextNumber); 
相关问题