63.轮转数组

作者: wo不是黄蓉 | 来源:发表于2022-02-23 19:54 被阅读0次

day:14 189. 轮转数组(中等)
考点:双指针
思路:

  • 第一种解法:新建一个数组,计算每个位置该放的元素,将新数组中的值copy到原数组
  • 官网第二种解法没有看懂
  • 第三种解法:反转整个数组,,以k为界限分别反转[0,k/n-1]区间的元素和[k/n,n-1]区间的元素。至于为什么要界限定在k/n-1是因为需要保证k值的正确性,k最大为数组的长度,此时岂不是修改了k的长度。
    使用额外数组
var rotate = function(nums, k) {
    let n = nums.length,newArr = [];
   for(let i =0;i<n;i++){
      newArr[(i+k)%n]=nums[i]
    }
    for(let i = 0;i<n;i++){
      nums[i] = newArr[i]
    }
};

反转数组

//反转数组
function revese(nums,start,end){
  while(start<end){
     //交换数组元素
    [nums[start], nums[end]] = [nums[end], nums[start]];
    start +=1;
    end -= 1;
  }
}
var rotate = function(nums, k) {
   let k = k%nums.length;
  reverse(nums, 0, nums.length - 1);
  reverse(nums,0,k%nums.length-1);
  reverse(nums,k%nums.length,nums.length-1);
};

相关文章

  • 63.轮转数组

    day:14 189. 轮转数组[https://leetcode-cn.com/problems/rotate...

  • 189. 轮转数组

    https://leetcode.cn/problems/rotate-array/[https://leetco...

  • 189. 轮转数组

    题目地址(189. 轮转数组) https://leetcode.cn/problems/rotate-array...

  • 189. 轮转数组

    1.题目 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1:输入: nums = ...

  • LeetCode:189. 轮转数组

    问题链接 189. 轮转数组[https://leetcode-cn.com/problems/rotate-ar...

  • LeetCode 189. 轮转数组

    题目 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 例:输入: nums = [1,2,...

  • 【算法题】25.轮转数组

    题目 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例1 输入: nums = [1,...

  • 轮转

    他找不到他,他不知道他躲到了哪里,但他不担心,因为他总会回来,命运早已注定他们的相遇。 玄元国轩辕53年 元都 “...

  • 轮转

    我想看见成仙成佛之前的你 你却给了我一身武艺 我用你赐予我的力量搅天捣地 嘲弄所有的规则和戒律 我声震天下,名与天...

  • 轮转

    整个曼陀罗象个旋转的彩轮,所以起名叫轮转。取转动之意,也有生命轮转之意。涂曼陀罗之时,放的音乐是佛教音乐,一个是静...

网友评论

    本文标题:63.轮转数组

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