概述
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算法练习--数组旋转所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复