2025-02-16 移动零
This commit is contained in:
parent
aaf3129a43
commit
5a991ac39a
60
src/dataANDcalc/java/leetcode/MoveZeroes.java
Normal file
60
src/dataANDcalc/java/leetcode/MoveZeroes.java
Normal 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 + " ");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user