代码编织梦想

大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️
在这里插入图片描述


点击查看题目

在这里插入图片描述

1.三步旋转法

根据大数据运算可得到以下规律,采用下面的三步旋转即可得到旋转后的数组
在这里插入图片描述

void reverse(int* nums,int left,int right)
{
    while(left<right)
    {
        int tmp=nums[left];
        nums[left]=nums[right];
        nums[right]=tmp;
        left++;
        right--;
    }
}

void rotate(int* nums, int numsSize, int k) {
	k %= numsSize;
	reverse(nums,0,numsSize-k-1);
    reverse(nums,numsSize-k,numsSize-1);
    reverse(nums,0,numsSize-1);
}

2.利用额外的数组

我们可以知道,数组元素经过轮转后下标为原下标i+k再整体%numsize

void rotate(int* nums, int numsSize, int k) {
	k %= numsSize;
	int* newArr=(int*)malloc(sizeof(int)*numsSize);
    for(int i=0;i<numsSize;i++)
    {
        newArr[(i+k)%numsSize]=nums[i];
    }
    for(int i=0;i<numsSize;i++)
    {
        nums[i]=newArr[i];
    }
}

好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_75000174/article/details/135732831

leetcode-旋转数组-爱代码爱编程

categories: [计算机通识,数据结构与算法,leetcode系列] thumbnail: /images/fe/leetcode.jpg toc: true 旋转矩阵(难度:中等) 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 不占用额外内存空间能否做到? 题解:对于下

189. 轮转数组-爱代码爱编程

题目:给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 规律:当翻转数组后,数组原位置i的元素到了(i + k)% n 的位置。 我们可以使用额外的数组来将每个元素放至正确的位置。用 n 表示数组的长度,我们遍历原数组,将原数组下标为 i 的元素放至新数组下标为 (i + k) mod n 的位置,最后将新数组拷贝至原数组即可。

【无标题】-爱代码爱编程

##reverse 使字符串顺序颠倒 abcd dcba 旋转数组 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1

【Leetcode数据结构算法题】轮转数组(顺序表篇)-爱代码爱编程

题目内容: 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 leetcode题目链接(点击即可跳转) 思路分析 看完题目后,我们首先要做的就是理解题目的含义,也就是审题。从不同维度,不同角度的去设问题并主动回答这些问题。题目中出现了一个我们比较陌生的词语“轮转”,可能我们一下子无法理解这个词是啥子玩意儿。这个时候就

LeetCode 189.轮转数组 (双指针)-爱代码爱编程

题目传送门:轮转数组 题目详情: 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5]

【leetcode]189.轮转数组(C语言实现)-爱代码爱编程

文章目录 【leetcode]189.轮转数组(C语言实现)1.第一种办法:基本旋转2.第二种办法:额外开辟一个数组3.第三种方法:三逆置结束语 【leetcode]189.轮转数组(C语言实现) 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数 输入: nums = [1,2,3,4,5,6,7], k = 3 输出:

leetcode刷题之轮转数组(超详解刷爆力扣)-爱代码爱编程

大家好啊,我是小生啊🙈🙈🙈 我可没忘记带着大家刷题呢,嘿嘿兄弟姐妹们,我来啦😎😎😎让我们开始我们今天快乐的力扣刷题之旅吧,啦啦啦~~~ 😝😜😙 🌞🌞🌞 让我们一题多解,刷爆力扣,冲冲冲👊👊👊 力扣练习:轮转数组🏃🏃🏃 一.🏠题目描述二.🏠题目分析三.🏠解决方法1.🚀思路一:化尾为头再循环挪动2.🚀思路二:开辟新空间优化时间3.🚀思路三

LeetCode每日一题(三)——【轮转数组】-爱代码爱编程

问题描述: 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7

LeetCode 轮转数组-爱代码爱编程

void Reverse(int* subnum, int kk)//逆置函数 {     int left = 0; int right = kk-1;     while(left<right)     {         int tmp = subnum[left];         subnum[left] = subnum[ri

LeetCode198.轮转数组-爱代码爱编程

轮转(旋转)数组 问题引入: 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 例如当k = 1时,表示数组里的元素都向后移一位,最后一位元素到数组头部。示例如下。 代码示例求解: //leetcode环境下的实验代码 class Solution { public static void Revers(int[]

leetcode——189.轮转数组-爱代码爱编程

通过万岁!!! 题目:就是给你一个数组,然后进行一个轮转。其实就是将后面k个元素移动到前面去。基础思路:我们定义一个数组,长度为k,保存后面个数组,然后将前面的一次往后保存,然后把这个数组再填充到这个数组的前面即可。时间复

leetcode 189. 轮转数组_leetcode189-爱代码爱编程

🌟 前言 Wassup guys!我是Edison 😎 今天是 LeetCode 上的 leetcode 189. 轮转数组 Let’s get it! 文章目录 1. 题目分析2. 题目图解🍑

leetcode刷题之轮转数组_leecode 轮转数组-爱代码爱编程

Leetcode刷题之轮转数组 一、题目描述二、题目解析方法一:三段逆置题目代码 方法二:利用memcpy进行拷贝运行结果 一、题目描述 轮转数组 给定一个整数数组 nums,

最全leetcode刷题之轮转数组(超详解刷爆力扣)_力扣循环数组(1),2024年最新c c++开发前景怎么样_leetcode 轮转数组-爱代码爱编程

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。 需要这份系统化的资料的朋友,可以添加戳这里获取 一个人可以走的很快,但一群人才能走的更远!不论你是正