力扣移动零

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

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

复制代码
输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

示例 2:

复制代码
输入: nums = [0]
输出: [0]

题解:

参考快速排序,零是中间点,等于零点放在右边,不能与零的放在左边,用两个指针,i和j,只要 nums[i]!=0,我们就交换 nums[i]nums[j]。j用来指非零,i找0;

java 复制代码
class solution(){
    public void MoveZeroes(int[] nums){
        if(nums==null){
            return;
        }
        int j=0;
        for(int i=0;i<nums.length;i++){
                 //当前元素!=0,就把其交换到左边,等于0的交换到右边
                if(nums[i]!=0){
                    int tmp = nums[i];
                    nums[i] = nums[j];
                    nums[j++] = temp;
                }
           }
    }
}
相关推荐
liliangcsdn7 小时前
多空价差收益序列汇总统计的分析和代码示例
人工智能·算法·机器学习
啥都想学点的研究生7 小时前
一篇文章讲清楚:Adaboost算法与GBDT
人工智能·算法
旖旎夜光7 小时前
LeetCode 525:连续数组(前缀和) —— 题解
数据结构·c++·算法·leetcode·前缀和
zander2588 小时前
LeetCode 32. 最长有效括号
算法
lvwangshu8 小时前
AC 自动机
算法·字符串
shehuiyuelaiyuehao17 小时前
算法31,前缀和,可被k整除的子数组
数据结构·python·算法
测试199818 小时前
如何用appium搭建Android自动化测试框架?
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
203号居民19 小时前
LeetCode hot 100 — 141. 环形链表2
算法·leetcode·链表
玖玥拾19 小时前
LeetCode 202 快乐数
算法·leetcode
LuminousCPP19 小时前
数据结构-二叉树(六):BFS层序遍历与完全二叉树判断|复用链式队列 + (N_0=N_2+1) 性质证明
c语言·数据结构·笔记·算法·二叉树·宽度优先