今天分享的题目是leetcode283移动0(成都人狂喜)
先来看下题目描述
这道题目我也看了官方的题解感觉有点冗余了。
那么我们就不用官方的题解了,分享下我们自己的解体方式。
解题步骤:1.找到非0元素,如果是非0进行记录2.最后进行补0的操作。
具体代码
public void moveZeroes(int[] nums) {int s=0;//定义收集不是0的数的指针//开始收集不是零的数for (int i = 0; i < nums.length ;i++) {if(nums[i]!=0){nums[s++] = nums[i];}}//收集完毕后,后面自然就都是0了for (int i = s; i < nums.length; i++) {nums[i]=0;}}
假如现在我们的测试用例为: int arr[] = {0,1,0,3,12};
那么经过第一个for循环后的数组变为:1,3,12,3,12
.然后我们记录的s此时为3,我们从s的位置朝后补零即可。