2016-07-22 93 views
-2

arr1是一個數組有三個元素第一個是arr2中元素的個數,第二個是沒有旋轉第三個是否。的輸入。我想打印由用戶給定輸入索引的arry2的元素。第二個輸入數組是包含數組元素的輸入數組。如何減少此代碼的時間複雜度

arr1 =gets.strip.split(' ').map(&:to_i) 
arr2 = gets.strip.split(' ').map(&:to_i) 

q=arr1[2] 
count= arr1[1] 

count.times do 
    arr2=arr2.reverse.rotate.reverse 
end 

for i in 0..q-1 do 
    i = gets.strip.to_i 
    puts "#{arr2[i]}\n" 
end 
+2

替換您能添加對'arr1'一個例子和'arr2'和預期的輸出? – spickermann

+0

敘述是非常難以理解的。如果我知道應該說什麼,我會解決它,但我恐怕不知道。你能否爲了清晰而編輯問題,注意標點符號,拼寫等等?我意識到你不是以英語爲母語的人,這很好,但我希望你能說得更清楚。 –

回答

1

rotate需要一個參數,它是要旋轉的元素的數量。這個數量可以是負向另一方向轉動,從而

count.times do 
    arr2=arr2.reverse.rotate.reverse 
end 

其拷貝在每次迭代陣列3次,可通過

arr2 = arr2.rotate(-count) 
+0

是的,謝謝你,現在工作 –