美文网首页题库
IOS 算法(基础篇) ----- 数组重新排序

IOS 算法(基础篇) ----- 数组重新排序

作者: ShawnAlex | 来源:发表于2020-06-11 11:26 被阅读0次

今天写一个简单的算法, 就好比大鱼大肉吃多了偶尔拍个黄瓜也是极好的

如果你想知道什么简单的? 既然你诚心诚意的发问了, 我就大发慈悲的告诉你!

一个简单的数组重新排序问题

一个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) 感谢力扣爸爸 :)

IOS 算法合集地址

相关文章

网友评论

    本文标题:IOS 算法(基础篇) ----- 数组重新排序

    本文链接:https://www.haomeiwen.com/subject/jjnvtktx.html