一個2n個元素的數(shù)組, 前n個 x1, x2...xn 后n個y1, y2...yn 重新排列成x1, y1, x2, y2...xn, yn
例如:
給定數(shù)組 arr = [1, 3, 5, 6, 0, 7, 4, 2] 給定值 n = 4, 重新排列結(jié)果 result = [1, 0, 3, 7, 5, 4, 6, 2] 這個問題在算法中算簡單的一類了, 我們的思路是一次遍歷, 建新數(shù)組 for 依次添加 i 和 i + n 元素
OC代碼
NSArray *num = @[@1, @3, @5, @6, @0, @7, @4, @2];
int n = 4;
NSLog(@"返回結(jié)果: %@", [self calculate:num N:n]);
- (NSMutableArray *)calculate:(NSArray *)num N:(int) n {
NSMutableArray *arr = [NSMutableArray array];
for (int i = 0; i < n; i++) {
[arr addObject:num[i]];
[arr addObject:num[i+n]];
}
return arr;
}
Swift代碼
let num:[Int] = [1, 3, 5, 6, 0, 7, 4, 2]
let n = 4
print("返回結(jié)果: \(self.caculate(num: num, n: n))")
func caculate(num:[Int], n:Int) -> [Int] {
var arr:[Int] = []
for i in 0..<n {
arr.append(num[i])
arr.append(num[i + n])
}
return arr
}
題目來源:力扣(LeetCode) 感謝力扣爸爸 :)