给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
实现(OC)
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *oriArray = @[@(2),@(3),@(6),@(7),@(22),@(12)];
BOOL isHaveNums = [self twoNumSumWithTarget:9 Array:oriArray];
NSLog(@"%d",isHaveNums);
}
- (BOOL)twoNumSumWithTarget:(int)target Array:(NSArray<NSNumber *> *)array {
NSMutableArray *finalArray = [NSMutableArray array];
for (int i = 0; i < array.count; i++) {
for (int j = i + 1; j < array.count; j++) {
if ([array[i] intValue] + [array[j] intValue] == target) {
[finalArray addObject:array[i]];
[finalArray addObject:array[j]];
NSLog(@"%@",finalArray);
return YES;
}
}
}
return NO;
}
// 还有一种利用 hash table 写的高效方案,有兴趣可以去看。