刷题专栏(一):移除元素

简介: 刷题专栏(一):移除元素

前言

从今天来解算法题,从逻辑上突破一下。

先从简单开始,立志刷完一千道,欢迎大家关注我的《刷题专栏》,一起来刷题。

image.png

算法题:移除元素

《移除元素》这道题,本身从题目上来看,并不难。

题意:

从一个整数数组中,将元素等于val的元素移除。

这里其实也不是真正的删除掉,最后的结果是要将整数数组减去val元素存在总数后的前N位。

比如一个数组 [3,2,2,3],val提供的值是3。

然后我们应该返回整数2(因为数组中存在着两个3),整数数组最后应该是[2,2,n,n](这里的n可以是任何数字,因为最后验证时只会获取前2位数组元素,此时保证其中不包含val值3即可)。

思路:

主要是有一个空间复杂度必须满足O(1),这就说明了不能再暴力无脑循环了。

这道题最后要得到一个int整数值,还有数组中的元素变动。

一开始想到可能需要排序之类的算法,后来发现想多了。

只需要将所有的不符合val值的元素往前提即可,其中可以通过总数来作下标。

代码展示

我们来看一下具体代码:

public static void main(String[] args) {
    Solution solution = new Solution();
    System.out.println(solution.removeElement(new int[]{3,2,2,3}, 3));
}
public int removeElement(int[] nums, int val) {
    int count = 0;
    for (int i = 0; i < nums.length; i++) {
        if (nums[i] != val) {
            nums[count] = nums[i];
            count++;
        }
    }
    System.out.println(Arrays.toString(nums));
    return count;
}


这是我的执行结果,顺利做完题挺好。

image.png

总结

总结一下,这道题的主要考点在于其对引用数据类型的了解,和对空间复杂度的了解。

只要搞清数组的元素替换就可以了。

目录
相关文章
|
4月前
|
算法
27. 移除元素 Leetcode经典面试题
27. 移除元素 Leetcode经典面试题
19 1
【力扣经典面试题】27. 移除元素
【力扣经典面试题】27. 移除元素
|
4月前
|
Java C++
面试题 17.10. 主要元素(C++)
面试题 17.10. 主要元素(C++)
13 0
|
9月前
|
算法
LeetCode150道面试经典题-移除元素(简单)
给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度
37 0
|
5月前
|
算法
六六力扣刷题数组之移除元素
六六力扣刷题数组之移除元素
28 0
|
5月前
|
算法
【LeetCode刷题日志】27.移除元素
【LeetCode刷题日志】27.移除元素
|
6月前
|
算法
代码随想录训练营Day1:二分查找与移除元素
代码随想录训练营Day1:二分查找与移除元素
27 0
|
6月前
每日一题——leetcode基础题之移除链表元素
每日一题——leetcode基础题之移除链表元素
23 0
每日一题——leetcode基础题之移除链表元素
|
11月前
每日一题——移除元素
每日一题——移除元素
|
12月前
|
存储 索引
【LeetCode】每日一题:移除元素
【LeetCode】每日一题:移除元素
61 0