力扣移除元素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;
    }
};
相关推荐
YL200404263 小时前
048路径总和III
数据结构·dfs
z200509303 小时前
每日简单算法题——————跟着卡尔
算法
Irissgwe4 小时前
类与对象(三)
开发语言·c++·类和对象·友元
️是784 小时前
信息奥赛一本通—编程启蒙(3395:练68.3 车牌问题)
数据结构·c++·算法
Liangwei Lin5 小时前
LeetCode 118. 杨辉三角
算法·leetcode·职场和发展
计算机安禾5 小时前
【c++面向对象编程】第24篇:类型转换运算符:自定义隐式转换与explicit
java·c++·算法
鼠鼠我(‘-ωก̀ )好困5 小时前
leetGPU
算法
雪度娃娃5 小时前
转向现代C++——优先选用nullptr而不是0和NULL
开发语言·c++
我星期八休息5 小时前
Linux系统编程—基础IO
linux·运维·服务器·c语言·c++·人工智能·算法
池塘的蜗牛5 小时前
A Low-Complexity Method for FFT-based OFDM Sensing
算法