Leetcode189. 轮转数组
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. 轮转数组相关推荐
- LeetCode189.轮转数组
给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数. 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3, ...
- leetcode-189. 轮转数组
1.题目 给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数. 进阶: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题. 你可以使用空间复杂度为O(1) 的原地算法解决这个问 ...
- 【leetCode189】轮转数组
作者:日出等日落 专栏:leetCode刷题训练 要成功不需要什么特别的才能,只要把你能做的小事做得好就行了. --维龙 目录 题目: 第一种方法: 第二种方 ...
- python轮转数组及nums和nums[:]的区别
文章目录 189. 轮转数组 nums和nums[:] python数组两元素互换其值 a=[None] * n创建列表 异或^: 本文主要利用leetcode上的189. 轮转数组来解剖其涉及到的a ...
- 轮转数组(Java)
算法--轮转数组(Java) 题目来源 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数. 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: ...
- LeetCode_189.轮转数组
目录 一.题目 二.解法 1)BF法 2)新数组 3) 逆置法 一.题目 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数. 题目链接:189. 轮转数组 - 力扣(LeetCod ...
- 轮转数组 (java)
189. 轮转数组 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数. 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2 ...
- LeetCode 189.轮转数组 (双指针)
题目传送门:轮转数组 题目详情: 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数. 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5, ...
- leetcode189. 旋转数组
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 ...
最新文章
- 快速排序java代码_8 种排序算法与 Java 代码实现!
- Java设计模式理论知识要点总结
- 将输出流转换成输入流
- 下列关于计算机图形的应用中 错误的是,计算机图形学题库及答案
- Ubuntu:最简单的Ubuntu安装工具Wubi
- 安装php独立环境,0507-php独立环境的安装与配置 Web程序 - 贪吃蛇学院-专业IT技术平台...
- mcq 队列_MCQ | 软件工程基础知识/简介(1)
- wps怎么投递简历发到boss直聘_BOSS直聘角逐招聘季:装机量、下载增量、增长率三料冠军...
- 用计算机画出方格表,方格造型图_怎么做这种颜色相间的方格图(有图)_彩妆阁...
- 用PHP编写提供性别的发法,第6节 Laravel-通过模型处理性别
- rocketmq生产者发送到哪个队列
- 制作linux系统镜像U盘启动盘(有效适用)
- 使用 Python 开发 QGIS 插件
- vue 直传视频到阿里云OSS
- word文字怎么竖向排列_word怎么把字体竖着 如何在WORD中竖排文字
- 欧拉定理和费马小定理
- Scrapy中Spiders的用法
- 高级软件工程第七次作业:LLS战队Alpha敏捷冲刺5
- 算法设计与分析-习题-用生成函数求解递归方程f(n)=2f(n/2)+cn,f(1)=0
- C# 实现飞行棋小游戏
热门文章
- 信息推送服务使用规则
- 【蓝桥杯】1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
- 旅游必备的十款热门APP
- 自学Python兼职赚取人生的第一桶金,他能做到为什么我却不行?原因到底是.....
- jQuery 超实用笔记(一)- 获取元素
- 伺服电机概念原理介绍
- Siebel 基础入门--权限控制
- 小丑2019_“小丑规则”
- RPA之PAD(Power Automate Desktop) 产品介绍
- python 日期计算各种方式