)
5. 给定一个数组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//双指针法 class Solution { public void moveZeroes(int[] nums) { //记录非0元素应该放的位置 int noZeroIndex0; //第一步先把非0的元素放到前面 for(int i0; inums.length; i){ if(nums[i]!0){ nums[noZeroIndex]nums[i]; noZeroIndex; } } //第二步把剩下的位置全部补成0 for(int inoZeroIndex; inums.length;i){ nums[i]0; } } }