美文网首页
数组旋转: 返回将一维数组向右旋转k个位置的结果

数组旋转: 返回将一维数组向右旋转k个位置的结果

作者: 并肩走天涯 | 来源:发表于2016-08-24 15:12 被阅读46次

    数组旋转:返回将一维数组向右旋转k个位置的结果。比如,一维数组[1,2,3,4,5],k=2时,返回结果[4,5,1,2,3]。要求常数级空间复杂度,允许修改原有数组。

      var reverse = function ( args, start, end ) {
        while (start < end) {
          let tmp = args[start];
          args[start] = args[end];
          args[end] = tmp;
          start++;
          end--;
        }
      };
    
      var rotate = function ( args, k ) {
        if (args == null || k >= args.length) {
          return args;
        }
    
        reverse(args, 0, args.length - 1);
        reverse(args, 0, k - 1);
        reverse(args, k, args.length - 1);
    
        return args;
      };
    
      var args = [1, 2, 3, 4, 5];
    

    相关文章

      网友评论

          本文标题:数组旋转: 返回将一维数组向右旋转k个位置的结果

          本文链接:https://www.haomeiwen.com/subject/kthosttx.html