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

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

前言

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

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

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

总结

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

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

目录
相关文章
|
域名解析 网络协议 测试技术
[插件使用] SwitchHosts自动更新Github Hosts文件
[插件使用] SwitchHosts自动更新Github Hosts文件
4184 0
|
10月前
|
数据采集 存储 前端开发
如何开发门店业绩上报管理系统中的销售日报板块?(附架构图+流程图+代码参考)
门店业绩上报管理系统中的销售日报板块是零售企业管理运营的核心工具。通过汇总当日销售数据,系统帮助管理者实时掌握门店经营状况,提升决策效率和市场竞争力。本文详解销售日报模块的功能设计、业务流程、开发技巧及实现效果,涵盖数据库设计、前端展示、数据采集与分析等内容,助力企业打造高效精准的销售日报系统,实现数据驱动的精细化管理。(239字)
|
物联网 Unix Linux
操作系统的发展历史
【10月更文挑战第15天】操作系统的发展历史
717 1
|
Web App开发 移动开发 JavaScript
HTML 音频(Audio)详解
HTML5通过`&lt;audio&gt;`元素为网页音频播放提供了丰富支持。本文将介绍其基本用法、属性(如`controls`、`autoplay`)、事件监听、格式兼容性(MP3、OGG、WAV、AAC),并提供JavaScript控制示例。此外,还将讨论优化技巧,如使用CDN、懒加载及提升用户体验的方法。
|
存储 安全 Java
2024ide构建maven项目是总是卡在解析Maven依赖项目 加速方案
2024ide构建maven项目是总是卡在解析Maven依赖项目 加速方案
823 4
2024ide构建maven项目是总是卡在解析Maven依赖项目 加速方案
|
Dart 前端开发 UED
【Flutter前端技术开发专栏】深入理解Flutter中的流(Streams)和异步编程
【4月更文挑战第30天】探索Flutter的异步编程与流:了解异步编程在提升响应性和避免阻塞中的作用,掌握Stream、StreamController和StreamSubscription核心概念。通过实践案例学习如何使用流处理网络请求,提升应用性能。参考Dart和Flutter官方文档,深入理解并运用异步模式,如回调、async/await和Futures,构建更佳用户体验的Flutter应用。
393 0
【Flutter前端技术开发专栏】深入理解Flutter中的流(Streams)和异步编程
|
小程序 编译器 数据安全/隐私保护
小白保姆级教程:微信公众号开发,从0到1
【8月更文挑战第8天】小白保姆级教程:微信公众号开发,从0到1
4822 3
小白保姆级教程:微信公众号开发,从0到1
|
安全 数据处理 数据安全/隐私保护
探究iOS与安卓在隐私保护方面的差异及影响
随着智能手机的普及,操作系统的隐私保护功能成为了消费者关注的焦点。本文将深入分析iOS和安卓两大主流操作系统在隐私保护方面的设计差异,并探讨这些差异对用户隐私安全的实际影响。通过对比研究,揭示各系统的优势与不足,为读者提供全面的系统选择参考。
|
Linux 调度 数据库
|
监控 安全 物联网
相比4G,5G有那些优势满足工业4.0的技术需求
5G凭借其超高速率、超低延迟、高可靠性、大连接数等核心技术优势,有力满足了工业4.0对于实时通信、灵活生产、高效自动化及大规模物联网应用的需求。
551 0

热门文章

最新文章