Fastest algorithm for circle shift N sized array for M position

后端 未结 24 3055
温柔的废话
温柔的废话 2020-11-28 05:33

What is the fastest algorithm for circle shifting array for M positions?
For example, [3 4 5 2 3 1 4] shift M = 2 positions should be [1 4 3 4 5 2 3

24条回答
  •  时光说笑
    2020-11-28 05:47

    Ruby example:

    def move_cyclic2 array, move_cnt
      move_cnt = array.length - move_cnt % array.length 
      if !(move_cnt == 0 || move_cnt == array.length)            
        array.replace( array[move_cnt..-1] + array[0...move_cnt] )  
      end   
    end
    

提交回复
热议问题