面试题答案
一键面试#import <Foundation/Foundation.h>
@interface HeartRateCalculator : NSObject
+ (NSDictionary *)calculateHeartRateStatistics:(NSArray<NSNumber *> *)heartRateData;
@end
@implementation HeartRateCalculator
+ (NSDictionary *)calculateHeartRateStatistics:(NSArray<NSNumber *> *)heartRateData {
if (heartRateData.count == 0) {
return @{
@"average": @0,
@"max": @0,
@"min": @0
};
}
NSNumber *max = heartRateData[0];
NSNumber *min = heartRateData[0];
double sum = 0;
for (NSNumber *number in heartRateData) {
if ([number doubleValue] > [max doubleValue]) {
max = number;
}
if ([number doubleValue] < [min doubleValue]) {
min = number;
}
sum += [number doubleValue];
}
double average = sum / heartRateData.count;
return @{
@"average": @(average),
@"max": max,
@"min": min
};
}
@end
你可以这样调用这个方法:
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray<NSNumber *> *heartRateData = @[@100, @120, @90, @110];
NSDictionary *statistics = [HeartRateCalculator calculateHeartRateStatistics:heartRateData];
NSLog(@"Average: %@, Max: %@, Min: %@", statistics[@"average"], statistics[@"max"], statistics[@"min"]);
}
return 0;
}