顺序右移数组元素(第0届第5题)

题目要求

问题描述:将一个数组中的元素顺序右移k(k>=0)位后输出。

样例输入:数组:1 2 3 4 5 6 7 8 9

k=3

样例输出:7 8 9 1 2 3 4 5 6

解决方案

可以考虑用逆置。详情见下图:

源码示例 & 结果展示

小结

利用逆置来移动,使得程序更简洁。另外逆置时候用前后交换的方法,节省时间。注意当k超出数组范围时,需要取余确定它的实际移动范围。当然,这个题的解决方案并不限于这一种,多尝试。

时间: 2024-12-23 08:01:20

顺序右移数组元素(第0届第5题)的相关文章

C/C++拾遗(一):关于数组的指针和数组元素首地址的一道经典题

代码如下: #include <stdio.h> int main(void) { int a[5] = {1, 2, 3, 4, 5}; int *ptr = (int *)(&a+1); int *p1 = a; int *p2 = &a[0]; int *p3 = (int *)(&a); if(p1 == p2){ printf("p1 == p2\n"); }else{ printf("p1 != p2\n"); } i

选择排序(第0届第2题)

题目要求 问题描述:用选择法对10个整数从小到大排序. 样例输入:4 85 3 234 45 345 345 122 30 12 样例输出:3 4 12 30 45 85 122 234 345 345 解决方案 选择排序,一种方案是不断从当前序列中选出最小的数排在开头,另一种方案是从当前序列中选出最大的数排在末尾. 源码示例 & 结果展示 小结 注意区分选择排序和冒泡排序.

全排列问题(第0届第1题)

题目要求 问题描述:输入一个可能重复的英文字符串(以逗号作为结束标记),按字典顺序无重复输出其所有可能的排列方式. 样例输入1:abc, 样例输出1:abc  acb  bac  bca  cab  cba 样例输入2:cab, 样例输出2:abc  acb  bac  bca  cab  cba 样例输入3:abb, 样例输出3:abb  bab  bba 解决方案 这个问题属于全排列问题,而且需要解决两个问题:第一是按字典顺序输出,第二是无重复输出.为了保证字典顺序输出,需要对输入的字串先进

【C语言】12-指向一维数组元素的指针

一.用指针指向一维数组的元素 1 // 定义一个int类型的数组 2 int a[2]; 3 4 // 定义一个int类型的指针 5 int *p; 6 7 // 让指针指向数组的第0个元素 8 p = &a[0]; 9 10 // 修改所指向元素的值 11 *p = 10; 12 13 // 打印第一个元素的值 14 printf("a[0] = %d", a[0]); 输出结果:,说明已经通过指针间接修改了数组元素的值,跟指向一个普通int类型变量是一样的. 由于数组名代表

学习笔记之12-指向一维数组元素的指针

一.用指针指向一维数组的元素 1 // 定义一个int类型的数组 2 int a[2]; 3 4 // 定义一个int类型的指针 5 int *p; 6 7 // 让指针指向数组的第0个元素 8 p = &a[0]; 9 10 // 修改所指向元素的值 11 *p = 10; 12 13 // 打印第一个元素的值 14 printf("a[0] = %d", a[0]); 输出结果:,说明已经通过指针间接修改了数组元素的值,跟指向一个普通int类型变量是一样的. 由于数组名代表

【C语言】指向一维数组元素的指针

本文目录 一.用指针指向一维数组的元素 二.用指针遍历数组元素 三.指针与数组的总结 四.数组.指针与函数参数 前面我们已经学习了指针,如果指针存储了某个变量的地址,我们就可以说指针指向这个变量.数组及其数组元素都占有存储空间,都有自己的地址,因此指针变量可以指向整个数组,也可以指向数组元素. 回到顶部 一.用指针指向一维数组的元素 1 // 定义一个int类型的数组 2 int a[2]; 3 4 // 定义一个int类型的指针 5 int *p; 6 7 // 让指针指向数组的第0个元素 8

【C语言】-指向一维数组元素的指针

本文目录 一.用指针指向一维数组的元素 二.用指针遍历数组元素 三.指针与数组的总结 四.数组.指针与函数参数 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.iOS开发不感兴趣,请忽略 前面我们已经学习了指针,如果指针存储了某个变量的地址,我们就可以说指针指向这个变量.数组及其数组元素都占有存储空间,都有自己的地址,因此指针变量可以指向整个数组,也可以指向数组元素. 回到顶部 一.用指针指向一维数组的

C语言 12-指向一维数组元素的指针

本文目录 一.用指针指向一维数组的元素 二.用指针遍历数组元素 三.指针与数组的总结 四.数组.指针与函数参数 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.iOS开发不感兴趣,请忽略. 前面我们已经学习了指针,如果指针存储了某个变量的地址,我们就可以说指针指向这个变量.数组及其数组元素都占有存储空间,都有自己的地址,因此指针变量可以指向整个数组,也可以指向数组元素. 一.用指针指向一维数组的元素 1

将数组元素循环右移k个位置(Java实现)

用四种方法实现了将数组元素循环右移k个位置,相关的解释作为注释放在代码里面了. package movearrayelement; import java.util.BitSet; public class MoveArrayElement { /** * 每次把数组中所有元素移动一个位置,移动k轮 * @param array * @param k */ public static void moveArrayElement(int[] array, int k) { int length =