LeetCode第283题

描述:

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

示例:

输入: [0,1,0,3,12]
输出: [1,3,12,0,0]

解题思路:遍历数组,将所有非0的数依次放到数组的前面,遍历完成后,假设非0的元素的个数为i个,数组元素为n,再次遍历数组n-i次,将数组中剩余的其他位置置为0,这种思路也是比较简单可行的。代码如下:

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++;
			}
		}
		for(int k=j;k<nums.length;k++){
			nums[k]=0;
		}
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章