力扣移动零

给定一个数组 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;
                }
           }
    }
}
相关推荐
动词ing14 分钟前
【C语言】自定义函数+指针入门
c语言·开发语言·算法
重生之后端学习28 分钟前
283. 移动零[简单]✅
开发语言·数据结构·算法·leetcode·职场和发展
一只小小的芙厨1 小时前
基础数论总结
笔记·学习·算法
夜不会漫长2 小时前
C++入门(1)
开发语言·c++·算法
wen_zhufeng3 小时前
IndexTTS 2.5 技术报告
人工智能·算法·机器学习
ITmaster07314 小时前
天天 AI Coding 的你,如果出去面试,你的竞争力是什么?
人工智能·面试·职场和发展
大熊背4 小时前
树莓派相机自动白平衡详解(四)
算法·树莓派·白平衡·isppipeline
一米阳光86614 小时前
软考(中级)软件设计师核心笔记(9)算法——背包问题
笔记·算法·职场发展·软考·软件设计师·中级职称
晚风醉蝶4 小时前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
旖旎夜光4 小时前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找