2025-02-16 移动零

This commit is contained in:
liangjinglin 2025-02-16 17:23:44 +08:00
parent aaf3129a43
commit 5a991ac39a

View File

@ -0,0 +1,60 @@
package leetcode;
//
//给定一个数组 nums编写一个函数将所有 0 移动到数组的末尾同时保持非零元素的相对顺序
//
// 请注意 必须在不复制数组的情况下原地对数组进行操作
//
//
//
// 示例 1:
//
// 输入: nums = [0,1,0,3,12]
// 输出: [1,3,12,0,0]
// 示例 2:
//
// 输入: nums = [0]
// 输出: [0]
//
//
// 提示:
//
// 1 <= nums.length <= 104
// -231 <= nums[i] <= 231 - 1
//
//
// 进阶你能尽量减少完成的操作次数吗
public class MoveZeroes {
private void move(int[] nums){
int left = 0;
int right = 0;
while(true) {
if(right == nums.length){
break;
}
if(nums[left] == 0){
if(nums[right] != 0){
int temp = nums[left];
nums[left] = nums[right];
nums[right] = temp;
left ++;
}
} else {
left ++;
}
right ++;
}
}
public static void main(String[] args) {
int[] nums = {1,0,1};
MoveZeroes moveZeroes = new MoveZeroes();
moveZeroes.move(nums);
for(int num : nums){
System.out.print(num + " ");
}
}
}