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