📌  相关文章
📜  Java程序将所有零移动到数组末尾(1)

📅  最后修改于: 2023-12-03 14:43:03.565000             🧑  作者: Mango

Java程序将所有零移动到数组末尾

在Java中,将所有零移动到数组末尾是一个常见的问题,本篇文章将介绍一种简单而高效的解决方法。

简介

假设我们有一个整型数组,我们需要将其中所有的零移动到数组的末尾。例如,对于数组[1, 0, 3, 0, 5],应该得到[1, 3, 5, 0, 0]

解决方案

一种简单的方法是使用两个指针,一个指向当前非零元素的位置,另一个指向当前零元素的位置。我们从头遍历数组,当遇到一个非零元素时,将其复制到第一个指针所指向的位置,同时将第一个指针向后移动一位;当遇到一个零元素时,只将第二个指针向后移动一位。当遍历结束后,我们将第一个指针所在位置之后的元素全部赋为零即可。

以下是Java实现代码:

public static void moveZeros(int[] nums) {
    int pos = 0;
    for (int num : nums) {
        if (num != 0) {
            nums[pos++] = num;
        }
    }
    while (pos < nums.length) {
        nums[pos++] = 0;
    }
}
示例

下面是一个将所有零移动到数组末尾的示例:

int[] nums = new int[]{1, 0, 3, 0, 5};
moveZeros(nums);
System.out.println(Arrays.toString(nums)); // [1, 3, 5, 0, 0]
总结

本文介绍了一种简单而高效的将所有零移动到数组末尾的方法,这种方法不仅简单易懂,而且时间复杂度为O(n),是一个非常优秀的解决方案。