资讯动态

hot100_移动零

发布时间:2026/8/9 7:07:23 来源:尧图企业网站定制
分析根据题目的意思我们要把零全部移动到后面在某个位置前面都不是零后面都是零并且要保证非零数字的相对位置不变。题解双指针因为只要后面都是零就可以了所以我们可以直接把非零数字直接按顺序赋值到前面后面统一处理后面该为零的位置。slow指针记录非零数字应该存储的位置。fast指针记录非零数字的位置。代码classSolution{public:voidmoveZeroes(vectorintnums){intslow0;for(intfast0;fastnums.size();fast){if(nums[fast]){nums[slow]nums[fast];}}while(slownums.size()){nums[slow]0;}}};时间复杂度O ( N ) O(N)O(N)优化版本直接交换即可不用二次处理classSolution{public:voidmoveZeroes(vectorintnums){intslow0;for(intfast0;fastnums.size();fast){if(nums[fast]!0){swap(nums[slow],nums[fast]);slow;}}}};283. 移动零 - 力扣LeetCode

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价