LeetCode之Rotate Array(Kotlin)

问题:



方法:
最简单的方法如下所示,可以每次移动一个位置,只保存一个元素,但算法复杂度是O(kn)。优化算法是三重翻转,先翻转所有元素,然后翻转0到k-1,然后翻转0到k,最后输出结果即可,算法复杂度是O(n)

class RotateArray {
    fun rotate(nums: IntArray, k: Int): Unit {
        for (step in 1..k) {
            val last = nums.last()
            for (index in nums.lastIndex downTo 1) {
                nums[index] = nums[index - 1]
            }
            nums[0] = last
        }
    }
}

fun main(args: Array<String>) {
    val input = intArrayOf(-1,-100,3,99)
    val rotateArray = RotateArray()
    rotateArray.rotate(input, 2)
    println(input.toList())
}

有问题随时沟通

具体代码实现可以参考Github

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第四章 原文 道冲,而用之或不盈。渊兮,似万物之宗。【锉其兑,解其紛,和其光,同其尘】湛兮,似或存。吾不知其谁之子...
    海上明月共阅读 1,414评论 0 0
  • 在专栏《通往财富自由之路》中,李笑来老师讲过投资最重要的事情就是避嫌。同样的,我认为这个道理在安全防范上也是铁律。...
    du_xzhe阅读 1,198评论 0 0
  • parse字符串转jsonJSON.parse({'name':123}); sort对象排序从小到大 关于首次加...
    Luyc_Han阅读 1,684评论 0 0
  • 1、感恩我身体亿万个细胞,让我身体越来越健康,可以画画可以思考可以品尝美味的食物。谢谢你们,爱你们哦 2、感恩美味...
    富足喜悦的丽琴阅读 1,315评论 0 0
  • 趣吟:新版 《回乡偶书》 寒冰 少小离家老大回 乡音不改鬓毛衰 满头白雪鬓染霜 额头深犁脸憔悴 近乡却步羞...
    eceff7a5c042寒冰阅读 3,996评论 0 1

友情链接更多精彩内容