`
thunderbow
  • 浏览: 156802 次
  • 性别: Icon_minigender_1
  • 来自: beijing
社区版块
存档分类
最新评论

用递归的方法颠倒整数数组的顺序

阅读更多
import java.util.Arrays;

/**
 * 用递归的方法颠倒整数数组的顺序。
 * 
 * @author 赵学庆,Java世纪网(java2000.net)
 * 
 */
class T {

  public static void reserse(int[] a, int left, int right) {

    if (left == right) {
      return;
    }
    int tmp = a[left];
    // 颠倒剩下的部分
    reserse(a, left + 1, right);
    // 移动数组
    for (int i = left; i < right; i++) {
      a[i] = a[i + 1];
    }
    a[right] = tmp;
  }

  public static void main(String args[]) throws Exception {
    int[] a = { 1, 2, 3, 4, 5 };
    reserse(a, 0, a.length - 1);
    System.out.println(Arrays.toString(a));
  }
}

 

分享到:
评论

相关推荐

    算法__链表的操作

    本文将深入探讨链表的一些关键操作,包括链表的逆序、两个有序链表的合并,并分别使用迭代和递归的方法实现。 ### 链表逆序 链表逆序是链表操作中的一个重要技巧,它可以使链表的数据顺序颠倒。在给定的代码片段中...

    Java练习题,实用于Java大部分人群

    - **知识点**:将一个整数的位顺序颠倒。 - **实现方法**: - 将整数转换为字符串。 - 使用字符串操作(如反转)改变数字顺序。 - 再次转换回整数。 #### 12. 折扣计算 - **知识点**:根据购买金额的不同,给予...

    100 questions by_july

    - 使用动态规划的方法来解决这个问题,可以用一个变量来记录当前连续子数组的和,同时用另一个变量来记录最大子数组的和。 - 从左至右遍历数组,对于每一个位置i,考虑两种情况:将当前位置i的元素加入到之前的最大...

    C语言程序的设计实验指导书.pdf

    2. 颠倒整数:可能使用到循环和数组,实现将整数的位数颠倒的功能。 3. 整数排序:学习数组操作和排序算法,如冒泡排序或选择排序。 4. 自整除数:理解模运算,找出能被自身所有数字整除的数。 5. 选作题:Fibonacci...

    C语言编程课程常见作业源码.zip

    10. **反向数字**:反向数字是指将一个整数的每一位颠倒顺序。可以通过将数字转换为字符串,然后从后向前遍历并拼接来实现,或者通过数学运算逐位提取和反转。 以上每个主题都是C语言学习过程中的重要部分,它们...

    C++实现十进制转二进制运算(改进版)

    这可能是由于在处理负数的补码时,没有正确地处理符号位,或者在构建二进制字符串时,位顺序颠倒了。解决这个问题的关键在于确保在转换过程中正确处理符号位,并按正确的顺序输出。 6. **操作流程**: - 首先,...

    世界500强面试题.pdf

    1.6.3. 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数 位于数组的后半部分 ...........................................................130 1.6.4. 给定链表的头指针和一个...

    程序员面试题精选100题.doc

    本题要求从给定的整数数组中寻找出一个或多个连续子数组,使得它们的和最大。 **解决方案**: 1. **动态规划思想**:可以使用动态规划的思想来解决这个问题,关键在于保持当前子数组和的最大值。 2. **维护状态**:...

    js代码-翻转整数(循环取余)

    在JavaScript编程中,“翻转整数”通常是指将一个正整数或负整数的数字顺序颠倒。例如,翻转数字1234会得到4321,而翻转-123则会得到-321。这个问题可以通过多种方法解决,其中一种常见方法是使用循环和取余操作。...

    java经典50题

    **知识点**:排序是将一组数按特定顺序排列的过程。本题要求对三个数进行排序,需要掌握比较和交换操作。 #### 题目十六:九九乘法表 **知识点**:九九乘法表是数学教育中的基础知识,本题要求打印出完整的九九乘法...

    微软面试题库

    1. **中序遍历:**由于二叉搜索树的中序遍历顺序就是节点值从小到大的顺序,因此可以通过中序遍历的方法来完成转换。 2. **调整指针:**在中序遍历的过程中,需要维护两个指针,一个指向当前链表的最后一个节点,另...

    c++常见编程例子下载

    在C++中,可以使用迭代或递归方法实现链表逆置。以下是一个简单的迭代示例: ```cpp ListNode* reverseList(ListNode* head) { ListNode* prev = NULL; ListNode* current = head; while (current != NULL) { ...

    C语言重点知识点大总结

    引用C语言标准库函数,一般要用文件包含预处理命令将其头文件包含进来,用户自定义的函数,必须先定义后使用,变量必须先定义后使用,变量名、函数名必须是合法的标识符,标识符习惯用小写字母,大小写敏感,不能用...

    C语言考试真题答案收集.pdf

    给定的程序使用了迭代方法,从第三个数开始,每个数都是前两个数的和。 8. **字符串反转**:`fanzhuan()`函数可以接收一个字符串,将其字符顺序颠倒,然后输出。这通常通过两个指针,一个从头开始,一个从尾开始,...

    微软等公司的面试题

    - 第六题:颠倒字符串或句子中的单词顺序,可以先将整个字符串颠倒,再逐一颠倒每个单词。 - 第七题:子字符串的查找可以采用滑动窗口等技术优化时间和空间复杂度。 - 第八题:比较两个字符串,可以采用逐字符对比的...

    python入小课_代码实现30个.pdf

    9. 键值对颠倒字典:使用字典的items()方法获取键值对,再通过字典推导式实现。 10. 打印九九乘法表:使用两层嵌套的for循环输出。 11. 替换列表中特定元素:使用列表推导式或者循环遍历列表,用条件判断替换元素...

    大的IT公司算法题

    构建一个大小为k的最小堆,遍历输入的整数数组,对于每个元素,如果堆未满或者当前元素小于堆顶元素,则将其加入堆中,同时如果堆的大小超过k,则弹出堆顶元素。最后堆中的元素即为最小的k个数。 ### 其他相关知识...

Global site tag (gtag.js) - Google Analytics