27. 移除元素 Leetcode经典面试题

简介: 27. 移除元素 Leetcode经典面试题

这个算法是用来从一个整数数组 nums 中移除所有值等于给定整数 val 的元素,并返回新数组的长度。

  1. 使用两个指针 in,其中 i 用于遍历原始数组 nums,而 n 用于跟踪新数组中的位置。
  2. 从头开始遍历nums数组,对于每个元素nums[i],进行以下检查:
  • 如果 nums[i] 不等于 val,将其复制到新数组的位置 n,然后递增 n
  • 如果 nums[i] 等于 val,则跳过,不将其包含在新数组中。
  1. 继续遍历整个数组,直到 i 到达数组的末尾。
  2. 返回 n 的值,这个值表示新数组中的不包含等于 val 的元素的长度。

这个算法的核心思想是通过遍历数组一次,将不等于 val 的元素逐个复制到新数组的开头,同时保持新数组的长度,以达到删除所有等于 val 的元素的目的。这是一种高效的方式,因为它只需要一次遍历数组,时间复杂度为 O(n),其中 n 是数组的长度。

举个例子,如果原始数组 nums[3, 2, 2, 3, 4, 5, 2],并且 val 为 2,使用这个算法后,新数组会变成 [3, 3, 4, 5],同时返回值 n 为 4,表示新数组的长度。

时间复杂度为O(n)

class Solution {
    public int removeElement(int[] nums, int val) {
       int n = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != val) {
                nums[n] = nums[i];
                n++;
            }
        }
        return n;
    }}


相关文章
|
6月前
【力扣】-- 移除链表元素
【力扣】-- 移除链表元素
66 1
|
19天前
|
机器学习/深度学习 存储 算法
【LeetCode 热题100】347:前 K 个高频元素(详细解析)(Go语言版)
这篇文章详细解析了力扣热题 347——前 K 个高频元素的三种解法:哈希表+小顶堆、哈希表+快速排序和哈希表+桶排序。每种方法都附有清晰的思路讲解和 Go 语言代码实现。小顶堆方法时间复杂度为 O(n log k),适合处理大规模数据;快速排序方法时间复杂度为 O(n log n),适用于数据量较小的场景;桶排序方法在特定条件下能达到线性时间复杂度 O(n)。文章通过对比分析,帮助读者根据实际需求选择最优解法,并提供了完整的代码示例,是一篇非常实用的算法学习资料。
172 90
|
6月前
【LeetCode 27】347.前k个高频元素
【LeetCode 27】347.前k个高频元素
67 0
|
8月前
|
存储 算法
LeetCode第83题删除排序链表中的重复元素
文章介绍了LeetCode第83题"删除排序链表中的重复元素"的解法,使用双指针技术在原链表上原地删除重复元素,提供了一种时间和空间效率都较高的解决方案。
LeetCode第83题删除排序链表中的重复元素
|
6月前
【LeetCode 06】203.移除链表元素
【LeetCode 06】203.移除链表元素
55 0
|
6月前
【LeetCode-每日一题】移除元素
【LeetCode-每日一题】移除元素
52 0
|
8月前
|
算法 索引
LeetCode第34题在排序数组中查找元素的第一个和最后一个位置
这篇文章介绍了LeetCode第34题"在排序数组中查找元素的第一个和最后一个位置"的解题方法,通过使用双指针法从数组两端向中间同时查找目标值,有效地找到了目标值的首次和最后一次出现的索引位置。
LeetCode第34题在排序数组中查找元素的第一个和最后一个位置
|
8月前
|
Python
【Leetcode刷题Python】剑指 Offer II 082. 含有重复元素集合的组合
解决LeetCode平台《剑指 Offer II 082. 含有重复元素集合的组合》题目的Python代码实现,通过深度优先搜索算法找出所有和为特定目标值的数字组合,并在搜索过程中通过排序和跳过重复元素来避免解集中出现重复组合。
62 2
|
8月前
|
Python
【面试题解答】一个有序数组 nums ,原地删除重复出现的元素
【面试题解答】一个有序数组 nums ,原地删除重复出现的元素
78 0
|
8月前
|
算法
LeetCode第27题移除元素
这篇文章介绍了LeetCode第27题"移除元素"的解题方法,通过使用双指针技巧,有效移除数组中特定值的元素并返回新数组的长度。

热门文章

最新文章