48 lines
1.3 KiB
Java
48 lines
1.3 KiB
Java
//给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
|
||
//
|
||
// 示例:
|
||
//
|
||
// 输入: [0,1,0,3,12]
|
||
//输出: [1,3,12,0,0]
|
||
//
|
||
// 说明:
|
||
//
|
||
//
|
||
// 必须在原数组上操作,不能拷贝额外的数组。
|
||
// 尽量减少操作次数。
|
||
//
|
||
// Related Topics 数组 双指针
|
||
// 👍 1110 👎 0
|
||
|
||
package leetcode.editor.cn;
|
||
|
||
//283:移动零
|
||
class MoveZeroes {
|
||
public static void main(String[] args) {
|
||
//测试代码
|
||
Solution solution = new MoveZeroes().new Solution();
|
||
}
|
||
|
||
//力扣代码
|
||
//leetcode submit region begin(Prohibit modification and deletion)
|
||
class Solution {
|
||
public void moveZeroes(int[] nums) {
|
||
int low = 0, fast = 1;
|
||
for (; fast < nums.length; fast++) {
|
||
if (nums[low] == 0) {
|
||
if (nums[fast] == 0) continue;
|
||
else {
|
||
int tmp = nums[low];
|
||
nums[low] = nums[fast];
|
||
nums[fast] = tmp;
|
||
low++;
|
||
}
|
||
continue;
|
||
}
|
||
low++;
|
||
}
|
||
}
|
||
}
|
||
//leetcode submit region end(Prohibit modification and deletion)
|
||
|
||
} |