Every day a leetcode

题目来源:189. 轮转数组

解法1:模拟

每次右移一个,执行k次。

代码:

void oneRotate(int* nums, int numsSize)
{int temp=nums[numsSize-1];for(int i=numsSize-1;i>0;i--){nums[i]=nums[i-1];}nums[0]=temp;
}
void rotate(int* nums, int numsSize, int k){for(int i=0;i<k;i++){oneRotate(nums,numsSize);}
}

结果:

解法2:辅助数组

我们可以使用额外的数组 temp 来将每个元素放至正确的位置,再拷贝回原数组。

代码:

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

结果:

解法3:数组反转


代码:

void swap(int* a, int* b){int temp=*a;*a=*b;*b=temp;
}void reverse(int* nums, int start, int end){while(start<end){swap(&nums[start],&nums[end]);start++;end--;}
}void rotate(int* nums, int numsSize, int k){k%=numsSize;reverse(nums,0,numsSize-1);reverse(nums,0,k-1);reverse(nums,k,numsSize-1);
}

结果:

Leetcode189. 轮转数组相关推荐

  1. LeetCode189.轮转数组

    给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数. 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3, ...

  2. leetcode-189. 轮转数组

    1.题目 给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数. 进阶: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题. 你可以使用空间复杂度为O(1) 的原地算法解决这个问 ...

  3. 【leetCode189】轮转数组

    作者:日出等日落 专栏:leetCode刷题训练 要成功不需要什么特别的才能,只要把你能做的小事做得好就行了.                      --维龙 目录 题目: 第一种方法: 第二种方 ...

  4. python轮转数组及nums和nums[:]的区别

    文章目录 189. 轮转数组 nums和nums[:] python数组两元素互换其值 a=[None] * n创建列表 异或^: 本文主要利用leetcode上的189. 轮转数组来解剖其涉及到的a ...

  5. 轮转数组(Java)

    算法--轮转数组(Java) 题目来源 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数. 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: ...

  6. LeetCode_189.轮转数组

    目录 一.题目 二.解法 1)BF法 2)新数组 3) 逆置法 一.题目 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数. 题目链接:189. 轮转数组 - 力扣(LeetCod ...

  7. 轮转数组 (java)

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

  8. LeetCode 189.轮转数组 (双指针)

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

  9. leetcode189. 旋转数组

    给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 ...

最新文章

  1. 快速排序java代码_8 种排序算法与 Java 代码实现!
  2. Java设计模式理论知识要点总结
  3. 将输出流转换成输入流
  4. 下列关于计算机图形的应用中 错误的是,计算机图形学题库及答案
  5. Ubuntu:最简单的Ubuntu安装工具Wubi
  6. 安装php独立环境,0507-php独立环境的安装与配置 Web程序 - 贪吃蛇学院-专业IT技术平台...
  7. mcq 队列_MCQ | 软件工程基础知识/简介(1)
  8. wps怎么投递简历发到boss直聘_BOSS直聘角逐招聘季:装机量、下载增量、增长率三料冠军...
  9. 用计算机画出方格表,方格造型图_怎么做这种颜色相间的方格图(有图)_彩妆阁...
  10. 用PHP编写提供性别的发法,第6节 Laravel-通过模型处理性别
  11. rocketmq生产者发送到哪个队列
  12. 制作linux系统镜像U盘启动盘(有效适用)
  13. 使用 Python 开发 QGIS 插件
  14. vue 直传视频到阿里云OSS
  15. word文字怎么竖向排列_word怎么把字体竖着 如何在WORD中竖排文字
  16. 欧拉定理和费马小定理
  17. Scrapy中Spiders的用法
  18. 高级软件工程第七次作业:LLS战队Alpha敏捷冲刺5
  19. 算法设计与分析-习题-用生成函数求解递归方程f(n)=2f(n/2)+cn,f(1)=0
  20. C# 实现飞行棋小游戏

热门文章

  1. 信息推送服务使用规则
  2. 【蓝桥杯】1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
  3. 旅游必备的十款热门APP
  4. 自学Python兼职赚取人生的第一桶金,他能做到为什么我却不行?原因到底是.....
  5. jQuery 超实用笔记(一)- 获取元素
  6. 伺服电机概念原理介绍
  7. Siebel 基础入门--权限控制
  8. 小丑2019_“小丑规则”
  9. RPA之PAD(Power Automate Desktop) 产品介绍
  10. python 日期计算各种方式