力扣 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;
    }
}
相关推荐
YuTaoShao8 小时前
【LeetCode 每日一题】712. 两个字符串的最小ASCII删除和——(解法一)记忆化搜索
算法·leetcode·职场和发展
知乎的哥廷根数学学派8 小时前
基于物理信息嵌入与多维度约束的深度学习地基承载力智能预测与可解释性评估算法(以模拟信号为例,Pytorch)
人工智能·pytorch·python·深度学习·算法·机器学习
古城小栈8 小时前
Rust 丰富&好用的 格式化语法
前端·算法·rust
AuroraWanderll9 小时前
类和对象(六)--友元、内部类与再次理解类和对象
c语言·数据结构·c++·算法·stl
leaves falling9 小时前
c语言-给定两个数,求这两个数的最大公约数
数据结构·算法
SamtecChina20239 小时前
Electronica现场演示 | 严苛环境下的56G互连
大数据·网络·人工智能·算法·计算机外设
Tim_109 小时前
【C++入门】05、复合类型-数组
开发语言·c++·算法
jikiecui9 小时前
信奥崔老师:三目运算 (Ternary Operator)
数据结构·c++·算法
无限进步_9 小时前
【C语言&数据结构】另一棵树的子树:递归思维的双重奏
c语言·开发语言·数据结构·c++·算法·github·visual studio