力扣 LeetCode 27. 移除元素(Day1:数组)

解题思路:

注意:数组只能覆盖,不能删除

erase方法的复杂度为O( n )而不是O( 1 ),因为需要把删除后后面的数组向前移动

方法一:双层for循环暴力

方法二:快慢指针

fast表示新数组的元素

slow表示新数组元素的下标

java 复制代码
class Solution {
    public int removeElement(int[] nums, int val) {
        int slow = 0;
        for (int fast = 0; fast < nums.length; fast++) {
            if (nums[fast] != val) {
                nums[slow] = nums[fast];
                slow++;
            }
        }
        return slow;
    }
}
相关推荐
Tisfy5 分钟前
LeetCode 3637.三段式数组 I:一次遍历(三种实现)
算法·leetcode·题解·模拟·数组·遍历·moines
遨游xyz13 分钟前
数据结构-哈希表
算法·哈希算法
dyyx11130 分钟前
C++中的过滤器模式
开发语言·c++·算法
lrh1228001 小时前
详解决策树算法:分类任务核心原理、形成流程与剪枝优化
算法·决策树·机器学习
期末考复习中,蓝桥杯都没时间学了1 小时前
力扣刷题15
算法·leetcode·职场和发展
2301_817497331 小时前
C++中的装饰器模式高级应用
开发语言·c++·算法
m0_549416661 小时前
C++编译期字符串处理
开发语言·c++·算法
m0_581124191 小时前
C++中的适配器模式实战
开发语言·c++·算法
A尘埃1 小时前
零售连锁店生鲜品类销量预测——线性回归(Linear Regression)
算法·线性回归·零售
u0109272711 小时前
C++与人工智能框架
开发语言·c++·算法