【问题标题】:Reverse element in array without array reverse method [closed]没有数组反转方法的数组中的反转元素[关闭]
【发布时间】:2016-12-02 17:26:29
【问题描述】:

我是新来的,也是编程新手。 我有一个任务,其中包括反转数组的元素,但不能使用数组反转方法。我不知道我怎么能做到这一点。我尝试使用 for 循环,但它不起作用。 提前致谢。

试图扭转这样的事情: 1,4,9,16,9,7,4,9,11 成 11,9,4,7,9,16,9,4,1

【问题讨论】:

  • 你能添加你失败的尝试吗?这样我们就能看到你做错了什么。
  • 将其放入List,然后使用自定义Comparator 进行Collections.sort()
  • “我尝试使用 for 循环,但没有成功” 太好了!发布它,我们可以帮助您了解它的问题所在。

标签: java arrays


【解决方案1】:

因此,由于这是一个家庭作业问题,因此我不会为您提供完整的答案,而是给您一些提示。

如果允许您创建一个额外的数组,请尝试以下操作: 创建一个包含反向元素的新数组。从末尾开始遍历初始数组并移动到元素 0。这样做时只需设置 initialArray[i] = newArray[index] 请注意,iindex 只是我编造的变量。这项作业的部分困难在于弄清楚如何在两个数组之间进行分配,所以我将把它留给你!

如有任何问题,请随时提出,我会尽力为您提供解决方案。

祝你好运!

【讨论】:

    【解决方案2】:

    使用 for 循环和第二个数组是最简单的方法。

    int[] array = new int[]{ 1, 4, 9, 16, 9, 7, 4, 9, 11 };
    int[] array2 = array;
    int count = 0;
    for(int i = array.length-1; i >= 0; i--) {
        array2[count] = array[i];
        count++;
    }
    

    仅使用一个数组的更复杂的解决方案是将值临时保存到外部 int 并交换它们。

    int count = 0;
    int[] array = new int[]{ 1, 4, 9, 16, 9, 7, 4, 9, 11 };
    for(int i = array.length-1; i >= count; i--) {
        int x = array[i];
        array[i] = array[count];
        array[count] = x;
        count++;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多