IOS 算法(基础篇) ----- 左旋转数组

2020-07-28  本文已影响0人  ShawnAlex

之前我们做个一道左旋转字符串的问题, 今天看一道左旋转字符串的问题

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

题目: 给一个数组 s , 数字k, 把数组转换成,就是一个数组通过K的值把数组后K位移到前面。

例如:
s = [1, 2, 3, 4, 5, 6, 7, 8, 9], k=3, 返回 [7, 8, 9, 1, 2, 3, 4, 5, 6]
s = [1, 2, 3, 8, 9,10], k=3, 返回 [8, 9, 10, 1, 2, 3]

思路都是, 数组切割再拼接

方法1:
肯定要用swift的特性啦, 这次用到这个两个函数
dropLast, suffix
这种方法最简洁, 一句代码即可

    func change(_ s: [Int], _ n: Int) -> [Int] {
        return s.suffix(n) + s.dropLast(n)
    }

方法2:
切割拼接

    func change(_ s: [Int], _ n: Int) -> [Int] {
        if n < 0 || n > s.count {
            return s;
        }
        return ([Int])(s[s.count - n..<s.count] + s[0..<s.count - n])
    }

IOS 算法合集地址

上一篇 下一篇

猜你喜欢

热点阅读