美文网首页
IOS 算法(基础篇) ----- 左旋转数组

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

作者: ShawnAlex | 来源:发表于2020-07-28 16:25 被阅读0次

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

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

    题目: 给一个数组 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 算法合集地址

    相关文章

      网友评论

          本文标题:IOS 算法(基础篇) ----- 左旋转数组

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