力扣移除元素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;
    }
};
相关推荐
裕晟资质规划1 小时前
武器装备科研生产单位保密资质申请方法论:条件模型与流程拆解
人工智能·算法
会周易的程序员2 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
小灰灰搞电子2 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt
QT界面美化性能优化2 小时前
QT+AI:使用AI技术为QT应用程序赋能
c++·人工智能·qt·opencv·qt教程·qt6.3
en.en..2 小时前
C语言 标准输入 / 输出缓冲区
算法
吃好睡好便好4 小时前
查找函数的使用
学习·算法·matlab·生活·查找函数
学习星球4 小时前
单调栈——从“找下一个更大的“到柱状图中的最大矩形
数据库·c++·算法·leetcode·xcode
小灰灰搞电子5 小时前
C++ 引用折叠详解
c++
专注仿真5 小时前
Spring AI 实现智能对话系统项目指南
数据结构·spring·机器学习
靠沿5 小时前
贪心算法专题(二)
算法·贪心算法