移除元素-力扣

  • 第一种解法,暴力解法,使用两个for循环一个进行遍历,一个进行覆盖,代码如下:
cpp 复制代码
class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int size = nums.size();
        for(int i =0; i < size; i++){
            if(nums[i] == val){
                for(int j=i+1; j < size; j++){
                    nums[j-1] = nums[j];
                }
                i--;
                size--;
            }
        }
        return size;
    }
};
  • 第二种解法,双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。
  • 快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组
  • 慢指针:指向更新 新数组下标的位置

代码如下:

cpp 复制代码
class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int size = nums.size();
        int slowindex = 0;
        int fastindex = 0;
        for(fastindex; fastindex < size; fastindex++){
            if(nums[fastindex] != val){
                nums[slowindex++] = nums[fastindex];
            }
        }
        return slowindex;
    }
};
相关推荐
Old Uncle Tom19 分钟前
OpenClaw 记忆系统 -- 记忆预加载
java·数据结构·算法·agent
会编程的土豆29 分钟前
洛谷题单入门1 顺序结构
数据结构·算法·golang
生信碱移32 分钟前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
智者知已应修善业1 小时前
【51单片机中的打飞机设计】2023-8-25
c++·经验分享·笔记·算法·51单片机
圣保罗的大教堂2 小时前
leetcode 1855. 下标对中的最大距离 中等
leetcode
智者知已应修善业3 小时前
【51单片机按键调节占空比3位数码管显示】2023-8-24
c++·经验分享·笔记·算法·51单片机
.5484 小时前
## Sorting(排序算法)
python·算法·排序算法
wuweijianlove4 小时前
算法的平均复杂度建模与性能回归分析的技术7
算法·数据挖掘·回归
子琦啊4 小时前
【算法复习】字符串 | 两个底层直觉,吃透高频题
linux·运维·算法
code_pgf6 小时前
Octo 算法详解-开源通用机器人策略模型技术报告
算法·机器人·开源