我是靠谱客的博主 含蓄香烟,这篇文章主要介绍scala算法练习--数组旋转,现在分享给大家,希望可以做个参考。

scala算法练习–数组旋转
O(1)空间复杂度及其验证算法

def rotate(nums: Array[Int], k: Int): Unit = {
      val len=nums.length
      if(len==1 || k==0 || len==k) return
        var i=0
        var j=0
        var index=j
        var temp =nums(index)
        do {
          val next=nums((index+k)%len)
          nums((index+k)%len)=temp
          index=(index+k)%len
          if(index==j){
            index+=1
            j=index
            temp =nums(index)
          }else{
            temp=next
          }
          i+=1
        }while(i<len)
    }
    def rotate1(nums: Array[Int], k: Int):Array[Int]={
      val newNums=new Array[Int](nums.length)
      var index=0
      nums.foreach{x=>
        newNums((index+k)%nums.length)=x
        index+=1
      }
      newNums
    }
    for(x<- 1 to 100000 ) {
      for(y<- 1 until x ){
        val arr=(0 to x).toArray
        println("========================================")
        println(s"x=${x}:::y=${y}")
        val arr1=rotate1(arr,y)
        println(arr1.mkString(","))
        rotate(arr,y)
        println(arr.mkString(","))
        if(arr.mkString!=arr1.mkString){
          throw new Exception
        }
        println("========================================")
      }

最后

以上就是含蓄香烟最近收集整理的关于scala算法练习--数组旋转的全部内容,更多相关scala算法练习--数组旋转内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(118)

评论列表共有 0 条评论

立即
投稿
返回
顶部