本题所使用的指针技巧,其实就是快速排序中序列按pivot元素分成两个分组并找到pivot元素位置的操作的基础 ——leetcode此题热评
哈喽,大家好,我是一条。 糊涂算法,难得糊涂
难度:简单
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
说明:
必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。
类似之前的
有序数组合并
依然采用双指针
法
同样的27.移除元素,大家可以练习一下
所有
leetcode
代码已同步至github https://github.com/lbsys/leetcode/tree/master/src/leetcode/editor/cn 欢迎star
/**
* @author yitiaoIT
*/
class Solution {
public void moveZeroes(int[] nums) {
int notZero=0;
int zero=0;
while(notZero<nums.length){
if (nums[notZero]!=0){
int tmp;
tmp=nums[notZero];
nums[notZero]=nums[zero];
nums[zero]=tmp;
zero++;
}
notZero++;
}
}
}
复杂度分析
更多资料点这里