题解 | 旋转数组

object Solution {
    /**
    * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    *
    * 旋转数组
        * @param n int整型 数组长度
        * @param m int整型 右移距离
        * @param a int整型一维数组 给定数组
        * @return int整型一维数组
    */
    fun solve(n: Int,m: Int,a: IntArray): IntArray  {
        // write code here
        return rotateArr(n, m, a)
    }

    fun rotateArr(n: Int, m: Int, a: IntArray): IntArray {
        val r = m % n
        a.reverse()
        a.reverseRange(0, r-1)
        a.reverseRange(r, n-1)
        return a
    }
    // 局部反转
    fun IntArray.reverseRange(s: Int, e: Int) {
        if (s >= e) return
        swap(s, e)
        reverseRange(s + 1, e - 1)
    }
    
    fun IntArray.swap(x: Int, y: Int) {
        val tmp = this[x]
        this[x] = this[y]
        this[y] = tmp
    }
}



全部评论

相关推荐

不愿透露姓名的神秘牛友
09-09 14:10
大三,在字节实习两周,被同学举报,辅导员要求回学校怎么办?
我的代码出BUG了:方案1:找领导说明情况然后请个假,回去一天找辅导员报道,见完面直接溜 。方案2:给辅导员卖惨,卖惨内容为家里没钱有贷款+没钱吃饭+心理抑郁+不想活了+社会险恶(同学举报)+想一si了之,例如:.....。长线规划:你这个同学的行为太恶心了,一定暗中收集你这个同学的错误事迹。比如举报课程设计不是他自己做的、比如以后他要是考公,你去考场门口拉横幅说他***,就说你是他好朋友,拉横幅只是为了开玩笑
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
09-11 16:04
门头沟学院 Java
青禾111:面我的小红书面试官傲慢无礼
我的秋招日记
点赞 评论 收藏
分享
牛客40297450...:不是研究生强,是你强
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务