练习题32-移动零

    技术2025-12-28  11

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

    示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。

    思路: 将数字不等于0的数字按遍历顺序依次从前往后存,然后如果不等于0的数字的数量小于数组长度的话,将这个数字后面的下标值置为0.

    代码:

    class Solution { public: void moveZeroes(vector<int>& nums) { int i = 0,j = 0; for(i = 0 ; i < nums.size();i++) { if(nums[i] != 0) { nums[j++] = nums[i]; } } while(j < nums.size()) { nums[j++] = 0; } } };

    练习题31(两道差不多类型的题目) -缺失数字和只出现一次的数字

    Processed: 0.015, SQL: 9