移除元素-力扣

  • 第一种解法,暴力解法,使用两个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;
    }
};
相关推荐
88号技师4 小时前
2024年12月一区SCI-加权平均优化算法Weighted average algorithm-附Matlab免费代码
人工智能·算法·matlab·优化算法
IT猿手4 小时前
多目标应用(一):多目标麋鹿优化算法(MOEHO)求解10个工程应用,提供完整MATLAB代码
开发语言·人工智能·算法·机器学习·matlab
88号技师4 小时前
几款性能优秀的差分进化算法DE(SaDE、JADE,SHADE,LSHADE、LSHADE_SPACMA、LSHADE_EpSin)-附Matlab免费代码
开发语言·人工智能·算法·matlab·优化算法
我要学编程(ಥ_ಥ)4 小时前
一文详解“二叉树中的深搜“在算法中的应用
java·数据结构·算法·leetcode·深度优先
埃菲尔铁塔_CV算法4 小时前
FTT变换Matlab代码解释及应用场景
算法
许野平5 小时前
Rust: enum 和 i32 的区别和互换
python·算法·rust·enum·i32
chenziang15 小时前
leetcode hot100 合并区间
算法
chenziang15 小时前
leetcode hot100 对称二叉树
算法·leetcode·职场和发展
szuzhan.gy6 小时前
DS查找—二叉树平衡因子
数据结构·c++·算法
一只码代码的章鱼6 小时前
排序算法 (插入,选择,冒泡,希尔,快速,归并,堆排序)
数据结构·算法·排序算法