LeetCode:27. 移除元素

简介

题目链接:https://leetcode.cn/problems/remove-element/description/

解决方式:数组 + 双指针

这是作者学习众多大神的思路进行解题的步骤,很推荐大家解题的时候去看看题解里面大佬们的思路、想法!

推荐查看宫水三叶大佬所作题解。

双指针

解题思路:双指针,与 26 题类似,不过此处是过滤掉与指定数字相同的元素。即,一个指针迭代整个数组,找到不同的元素就放在数组前面,否则继续迭代。

java 复制代码
class Solution {
    public int removeElement(int[] nums, int val) {
        // 边界处理
        if(nums.length == 0 || nums == null){
            return 0;
        }
        // 双指针
        // p 指针存放数组中与指定值不同的数字序列的最后一位
        int p = 0;
        // 此处为增强 for 循环,相当于另一个指针,迭代整个数组
        for(int num : nums){
            if (num != val) nums[p++] = num;
        }
        // 返回结果
        return p;
    }
}
相关推荐
啦啦啦啦啦zzzz12 小时前
数据结构:二叉树的线索化
数据结构·算法
2401_8724187812 小时前
算法入门:并查集(Disjoint Set / Union-Find):连通性问题的利器
算法
luj_176812 小时前
R语言生态优势与学习曲线分析
c语言·开发语言·网络·经验分享·算法
计算机安禾12 小时前
【算法分析与设计】第36篇:计算几何基础:凸包问题的分治与扫描线解法
大数据·人工智能·算法·机器学习·剪枝
货拉拉技术12 小时前
飞速发展的计算机视觉
人工智能·算法
如竟没有火炬13 小时前
寻找峰值——二分
java·开发语言·数据结构·python·算法·散列表
noipp13 小时前
推荐题目:洛谷 P1115 最大子段和
算法
Lumbrologist13 小时前
【C++】零基础入门 · 第 17 节:多线程编程基础
java·c++·算法
轻闲一号机13 小时前
【语音】笔记
前端·笔记·算法
aWty_13 小时前
实分析入门(12)--可测函数
学习·数学·算法·实变函数