Fastest algorithm for circle shift N sized array for M position

后端 未结 24 2982
温柔的废话
温柔的废话 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:48

    def shift(nelements, k):       
        result = []
        length = len(nelements)
        start = (length - k) % length
        for i in range(length):
            result.append(nelements[(start + i) % length])
        return result
    

    This code works well even on negative shift k

提交回复
热议问题