LeetCode 热题 100 283. 移动零
给定一个数组 nums
,编写一个函数将所有 0
移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。
示例 1:
输入: nums =[0,1,0,3,12]
输出:[1,3,12,0,0]
示例 2:
输入: nums =[0]
输出:[0]
public void moveZeroes(int[] nums) { int lengthNum = nums.length; int left = 0,right = 0; while (right < lengthNum) { if (nums[right] != 0) { swap(nums, left, right); left++; } right++; } } public void swap(int[] nums, int left, int right) { int temp = nums[right]; nums[right] = nums[left]; nums[left] = temp; } public static void main(String[] args) { int[] nums = {0,1,0,3,12}; Solution solution = new Solution(); solution.moveZeroes(nums); System.out.println(Arrays.toString(nums)); }