LeetCode100.4 移动零

不能复制数组,必须原地操作,只能用双指针了。一个正常遍历数组,另一个记录最左侧0的下标。

cpp 复制代码
class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        vector<int> ans(nums.size(), 0);
        int j = 0;
        for(int i = 0;i<nums.size();i++){
            if(nums[i]) ans[j++] = nums[i];
        }
        nums = ans;
    }
};

更符合题意的答案:

cpp 复制代码
class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int j = 0;
        for (int &i : nums) {
            if (i) {
                swap(i, nums[j]);
                j++;
            }
        }
    }
};
相关推荐
望未来无悔26 分钟前
系统学习算法 专题十八 队列+宽搜
java·算法
xz2024102****28 分钟前
最大似然估计:损失函数的底层数学原理
人工智能·算法·机器学习·概率论
Xの哲學44 分钟前
Linux RCU (Read-Copy-Update) 机制深度分析
linux·网络·算法·架构·边缘计算
数模加油站1 小时前
25高教社杯数模国赛【C题国一学长思路+问题分析】第二弹
算法·数学建模·数模国赛·高教社杯全国大学生数学建模竞赛
小跌—1 小时前
Linux:进程信号理解
linux·c++·算法
l12345sy3 小时前
Day22_【机器学习—集成学习(2)—Bagging—随机森林算法】
算法·机器学习·集成学习·bagging·随机森林算法
snowfoootball3 小时前
近期算法学习记录
学习·算法
今天也好累3 小时前
C++ 小游戏:拍桌子
c++·笔记·学习·算法
KyollBM3 小时前
【CF】Day139——杂题 (绝对值变换 | 异或 + 二分 | 随机数据 + 图论)
算法
纪元A梦3 小时前
贪心算法应用:交易费优化问题详解
算法·贪心算法