移动零
Posted lijins
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动零相关的知识,希望对你有一定的参考价值。
给定一个数组 nums
,编写一个函数将所有 0
移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入:[0,1,0,3,12]
输出:[1,3,12,0,0]
思路: 0 ~ j 的区域是 非零, k 扫描 遇到非零的数 就和 ++j 位置的数交换。
class Solution { public void moveZeroes(int[] nums) { int j=-1; for( int k=0; k < nums.length; ++k ){ if (nums[k] != 0) { Swap(nums, k, ++j); } } } public void Swap(int[] nums, int a, int b) { int tmp = nums[a]; nums[a] = nums[b]; nums[b] = tmp; } }
以上是关于移动零的主要内容,如果未能解决你的问题,请参考以下文章