link: https://leetcode.com/problems/move-zeroes/
Solution: two pointers
class Solution {
public void moveZeroes(int[] nums) {
int len = nums.length;
int left = 0;
for(int i=0; i<len; i++) {
if(nums[i] != 0 && nums[left] == 0) {
swap(nums, left, i);
left++;
} else if(nums[left] != 0){
left++;
}
}
}
public void swap(int[] n, int l, int r) {
int temp = n[l];
n[l] = n[r];
n[r] = temp;
}
}
本文介绍了一种解决LeetCode上Move Zeroes问题的高效算法。通过使用双指针技术,该算法能在O(n)的时间复杂度内将数组中所有零元素移至末尾,同时保持非零元素的相对顺序不变。代码示例采用Java实现,清晰展示了如何通过交换元素来达到目标。

472

被折叠的 条评论
为什么被折叠?



