力扣移除元素C++

题目


知识点


思路

双指针

栈------灵茶山艾府

并没有真正的使用栈,而是将 nums\[\] 数组看作一个栈,基于范围的for循环进行入栈操作


错误

判空

循环条件

要考虑 left = right 的情况


题解

自己双指针

cpp 复制代码
class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        if(nums.size() == 0){
            return 0;
        }
        int left = 0, right = nums.size() - 1;
        while (left <= right) {
            if (nums[left] == val) {
                nums[left] = nums[right];
                right--;
            }
            else {
                left++;
            }
        }
        return left;
    }
};

灵茶山艾府

cpp 复制代码
class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int stack_size = 0;
        for (int x : nums) {
            if (x != val) {
                nums[stack_size++] = x; // 把 x 入栈
            }
        }
        return stack_size;
    }
};
相关推荐
To_OC4 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
2401_841495644 小时前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥
fqbqrr5 小时前
2607C++,soui与安卓
c++·soui
fqbqrr8 小时前
2607C++,使用微软detours勾挂工具
c++
爱刷碗的苏泓舒8 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
蓝悦无人机11 小时前
C++基础 — 函数总结
开发语言·c++
烬羽11 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
闪电悠米11 小时前
力扣hot100-41.缺失的第一个正数-原地哈希详解
数据结构·算法·哈希算法
WL学习笔记12 小时前
堆(数据结构)
数据结构·