今天写一个简单的算法, 就好比大鱼大肉吃多了偶尔拍个黄瓜也是极好的
如果你想知道什么简单的? 既然你诚心诚意的发问了, 我就大发慈悲的告诉你!
一个简单的数组重新排序问题
一个2n个元素的数组, 前n个 x1, x2...xn 后n个y1, y2...yn 重新排列成x1, y1, x2, y2...xn, yn
例如: 给定数组 arr = [1, 3, 5, 6, 0, 7, 4, 2] 给定值 n = 4, 重新排列结果 result = [1, 0, 3, 7, 5, 4, 6, 2]
这个问题在算法中算简单的一类了, 我们的思路是一次遍历, 建新数组 for 依次添加 i 和 i + n 元素
OC代码
NSArray *num = @[@1, @3, @5, @6, @0, @7, @4, @2];
int n = 4;
NSLog(@"返回结果: %@", [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("返回结果: \(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) 感谢力扣爸爸 :)
网友评论