面试题答案
一键面试#import <Foundation/Foundation.h>
// 交换数组第一个和最后一个元素
void swapFirstAndLastElement(NSMutableArray<NSNumber *> *array) {
if (array.count < 2) {
return;
}
NSNumber *first = array[0];
NSNumber *last = array[array.count - 1];
array[0] = last;
array[array.count - 1] = first;
}
// 查找值为10的NSNumber对象
NSInteger findNumberTen(NSMutableArray<NSNumber *> *array) {
for (NSInteger i = 0; i < array.count; i++) {
if ([array[i] integerValue] == 10) {
return i;
}
}
return -1;
}
在上述代码中:
swapFirstAndLastElement
方法用于交换可变数组的第一个和最后一个元素。如果数组元素个数小于2,则直接返回。findNumberTen
方法用于查找数组中值为10的NSNumber
对象,这里使用了简单的线性查找。
查找算法 findNumberTen
的时间复杂度为 O(n),其中 n 是数组的长度。因为在最坏的情况下,需要遍历数组中的每一个元素才能确定是否存在值为10的对象。