汕尾市网站建设_网站建设公司_留言板_seo优化
2025/12/28 11:22:42 网站建设 项目流程

双指针

class Solution {public void moveZeroes(int[] nums) {int j=0;for(int i=0;i<nums.length;i++){if(nums[i]!=0){int tmp=nums[i];nums[i]=nums[j];nums[j]=tmp;j++;}}}
}
  • j是会不断维护他当前位置为0,除了最开始nums[0]!=0这样也可以通过j++保证始终维护0,然后i就寻找该位置不为0的元素和j进行交换

使用数组模拟栈

class Solution {public void moveZeroes(int[] nums) {int j=0;for(int i=0;i<nums.length;i++){if(nums[i]!=0){nums[j]=nums[i];j++;}}Arrays.fill(nums,j,nums.length,0);}
}
  • 把数组当做栈来模拟,如果有非0的数就向前移动,最后全部填0
  • 但是这个方法最坏的情况下也就是nums全部都为0,要对数组进行两次遍历 Arrays.fill(arr, fromIndex, toIndex, val)也要隐性地进行一次遍历

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询