【面试题】移除数组删除重复项合并数组

news2024/11/30 8:54:37

1️⃣ 原地移除数组中所有的元素val 【OJ链接】
2️⃣ 删除排序数组中的重复项 【OJ链接】
3️⃣ 合并两个有序数组 【OJ链接】

1️⃣ 原地移除数组中所有的元素val

在这里插入图片描述在这里插入图片描述
题目要求是要在数组中,把指定的数字全部去除,题目中也是强调了空间复杂度要求为O(1),所以就不能创建一个新的数组了。
而我的思路是先创建两个整型变量,然后将整个是数组遍历一遍,变量分别为srcdst,同时将两个变量赋值为零,将src向后遍历dst留下来接收移除后的数组。如果nums[src]==val就将src向后移,如果不相等就把nums[src]赋值给nums[dst]然后将srcdst同时先后移,直至数组遍历结束。
在这里插入图片描述

int removeElement(int* nums, int numsSize, int val){
    int src=0;
    int dst=0;
    while(src<numsSize)
    {
        if(nums[src]==val)
        {
            src++;
        }
        else
        {
            nums[dst]=nums[src];
            src++;
            dst++;
        }
    }
    return dst;
}

2️⃣ 删除排序数组中的重复项

在这里插入图片描述
在这里插入图片描述

题目要求是要在升序数组中,把重复数字去除,题目中也是强调了空间复杂度要求为O(1),所以就不能创建一个新的数组了。
而我的思路是先创建两个整型变量,然后将整个是数组遍历一遍,变量分别为srcdst,同时将两个变量赋值为零,将src向后遍历dst留下来接收移除后的数组。如果srcdst相等就将src向后移,然后再进行比较如果两个变量不相等了,先将dst向后移然后把nums[src]赋值给nums[dst]然后再将src向后移,直至数组遍历结束。
在这里插入图片描述

int removeDuplicates(int* nums, int numsSize){
    int src=0;
    int dst=0;
    while(src<numsSize)
    {
        if(nums[src]==nums[dst])
        {
            src++;
        }
        else
        {
            nums[++dst]=nums[src++];
        }
    }
    return dst+1;
}

3️⃣ 合并两个有序数组
在这里插入图片描述
在这里插入图片描述
本体是将两个非降序的数组进行合并,并且要求合并之后的数组也是非降序的,题目已经将第一个是数组的空间开辟的足够大。
因为已经将空间开辟好了,这个题适合从后插入,思路就是将两个是数组的最后一个值进行比较,较大值放入数组一的最后一个空间,如果第二个数组里的数量先为零,那第一个数组剩下的值也就不需要处理了,但是如果数组一的数量先为零,就需要进行一次循环判断,将数组二剩下的值按顺组插入数组一。

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){
    int i1=m-1;
    int i2=n-1;
    int j=m+n-1;
    while(i1>=0&&i2>=0)
    {
        if(nums1[i1]>nums2[i2])
        {
            nums1[j--]=nums1[i1--];
        }
        else
        {
            nums1[j--]=nums2[i2--];
        }
    }
    if(i2>=0)
    {
        while(i2>=0)
        {
            nums1[j--]=nums2[i2--];
        }
    }
}
最后:文章有什么不对的地方或者有什么更好的写法欢迎大家在评论区指出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3117.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目经理要“谋定而后动,知止而有得,万事皆有法,不可乱也”

出自《大学》&#xff0c;“谋定而后动&#xff0c;知止而有得”的含义为谋划准确周到而后行动&#xff0c;知道目的地&#xff08;合适的时机收手&#xff09;才能够有所收获。 谋定而后动是告诉我们做任何事一定要进行谋划部署&#xff0c;做好准备&#xff0c;我们才能开始行…

数据结构作业:时间复杂度和二叉树

计算时间复杂度&#xff1a; int x0,i,j; 1 for(i1;i<n;i) n { for(j1;j<2*i;j) 2(n-1) { x; 2(n-1)*n } } 2(n-1)*n2n^2-2n 修改后的运行次数函数中&#xff0c;只保留最高阶项。 所以时间复杂度为 &#xff1a;…

老生常谈的商城系统(Asp.Net+uniapp)

真正的大师,永远都怀着一颗学徒的心&#xff01; 最近几天合肥是真热 这时候就应该宅在家里 吃着西瓜 啃着鸭脖 喝着啤酒 刷着剧 想想也太美好了吧 哈哈 我得醒醒 写完这篇推荐 吃吃喝喝去了 一、项目简介 今天推荐一款商城系统&#xff0c;虽然比较老生常谈了&#xff0…

【项目】若依框架如何实现批量导入,并解析出表中内容返回给前端? - poi依赖

文章目录实现效果&#xff1a;具体实现步骤&#xff1a;扩展实例内容&#xff1a;poi工具包ExcelHandlerAdapter接口ExcelUtil.java代码controllerserviceserviceImplmapper.javamapper.xmlTnProductProperty.java实现效果&#xff1a; 点击“导入excl”按钮 --> 弹出“文件…

MSDC 4.3 接口规范(27)

MSDC 4.3 接口规范&#xff08;27&#xff09;7.4.4 代码7.4.5 更新组呼业务7.4.5.1 接口函数7.4.5.2 先决条件7.4.5.3 说明7.4.5.4 调用流程7.4.6 其他信息通知7.4.6.1 组呼服务停止7.4.6.1.1 接口函数7.4.6.1.2 先决条件7.4.6.1.3 说明7.4.6.1.4 调用流程7.4.6.2 SAI 列表更新…

Nginx禁止文件下载防止服务器被恶意扫描

比如将网站数据库导出到站点根目录进行备份&#xff0c;很有可能也会被别人下载&#xff0c;从而导致数据丢失的风险。以下规则可以防止一些常规的文件被下载&#xff0c;可根据实际情况增减。我们可以通过以下俩种方法来防止服务器被恶意扫描&#xff0c;其中以彼之道&#xf…

ffmpeg解复用FLV文件

该博文是基于&#xff1a; ffmpeg&#xff1a;V 5.1.2 FLV格式是H2.64视频和aac音频复用得到的格式&#xff0c;我们所说的FLV解复用就是将FLV格式的数据的H2.64视频帧和aac音频帧分离。 分离完成后&#xff0c;音频是纯数据无法播放&#xff0c;需要添加ADTS头&#xff0c;视频…

浅谈基于以太网的煤矿电力监控系统的设计与应用

王兰 安科瑞电气股份有限公司 上海嘉定 201801 摘 要&#xff1a;针对传统煤矿电力监控系统通讯网络性能较差、无法实现准确故障定位及报警、不具备数据交互功能等问题&#xff0c;结合分布式网络及GPS授时技术设计了一套基于工业以太网及RS485总线架构的煤矿电力监控系…

第二十三课.扩散模型

目录概述前向过程逆向过程DDPM概述 近几年扩散模型不断涌现&#xff0c;但都来源于一个基础模型&#xff1a;DDPM&#xff08;Denoising Diffusion Probabilistic Model&#xff09;。扩散模型本质是生成模型&#xff0c;过去我们常用的生成模型包括GAN和VAE&#xff0c;利用随…

【Linux】冯诺依曼体系结构

目录&#x1f308;前言&#x1f337;1、冯诺依曼体系结构&#x1f338;2、操作系统(Operator System)&#x1f339;2.1、概念&#x1f340;2.2、如何理解管理&#x1f341;3、进程&#x1f342;3.1、概念&#x1f308;前言 本篇文章进行操作系统中进程的学习&#xff01;&…

全新一代智慧园区数字孪生解决方案,为园区运营商和集成商赋能!

对于园区运营方而言&#xff0c;园区既要满足使用者的需求&#xff0c;还要面对后期运营过程中大量、繁琐的维护管理工作&#xff0c;同时还要兼顾园区运维效率和管理成本。 随着5G、物联网、云计算、人工智能、大数据等技术的快速发展和应用&#xff0c;园区运维智能化升级已…

自动控制原理 - 2 控制系统的数学模型 节2.7-2.10

2 控制系统的数学模型2.7 结构图的等效变换准则2.8 结构图等效变换的应用2.9 信号流图2.10 梅逊公式 2 控制系统的数学模型 2.7 结构图的等效变换准则 结构图没有直接给出系统输入与输出之间的定量关系。如何得到系统输入输出之间的传递函数&#xff0c;从而便于进一步分析系…

质量管理PPAP说明

PPAP是英文Production Part Approval Process的缩写&#xff0c;中文翻译为生产件批准程序。PPAP是TS16949质量管理体系五大工具之一&#xff0c;用于汽车整车或零部件生产过程的质量管控。 各种质量管理类书籍关于PPAP的介绍有很多&#xff0c;但什么情况下必须提交PPAP&…

Spring Boot + Docker实战

文章目录1.编写DockerFile2.构建镜像3.查看编译的镜像4.启动镜像测试5.创建私有仓库5.1查询registry镜像5.2加载镜像5.3运行镜像容器5.4检查容器6.搭建Registry web6.1首先搜索并拉取镜像6.2运行一个registry web容器6.3验证7.推送镜像到私有仓库8.服务器拉取镜像部署8.1 资源限…

在线电子书阅读小程序,微信小程序电子书阅读,微信小程序小说阅读器毕业设计作品

项目背景和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于微信小程序在线电子书阅读系统&#xff0c;前台用户使用小程序&#xff0c;后台管理使用基JavaMySql技术&#xff1b;通过后台录入电子书信息、书目录信息&#xff0c;用户通过小程序登录&#xff0c;查…

CY3-peg-海藻酸钠|海藻酸钠-荧光染料CY3|alginate-Cyanine3

CY3-peg-海藻酸钠|海藻酸钠-荧光染料CY3|alginate-Cyanine3 FITC/Rhodamine/TRITC/Comarin/Bodipy/ICG/CY3/CY3.5/CY5/CY5.5/CY7/CY7.5标记海藻酸钠 海藻酸钠的结构海藻酸酸是一种线性的阴离子多糖&#xff0c;由β-D-甘露糖醛酸&#xff08;M&#xff09;和α-L-葡糖醛酸&am…

【Android】性能监控之帧率检测Tinydancer

git地址 使用 增加依赖 dependencies {debugCompile "com.github.brianPlummer:tinydancer:0.1.2"releaseCompile "com.github.brianPlummer:tinydancer-noop:0.1.2"testCompile "com.github.brianPlummer:tinydancer-noop:0.1.2"}在Applicati…

strcat · strstr | 使用场景与模拟实现

啊我摔倒了..有没有人扶我起来学习.... &#x1f471;个人主页&#xff1a;《CGod的个人主页》\color{Darkorange}{《CGod的个人主页》}《CGod的个人主页》交个朋友叭~ &#x1f492;个人社区&#xff1a;《编程成神技术交流社区》\color{Darkorange}{《编程成神技术交流社区》…

java计算机毕业设计家教管理系统(附源码、数据库)

java计算机毕业设计家教管理系统&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技…

单调队列/单调栈优化dp

从这几篇博客学习的&#xff1a; DP优化小技巧&#xff08;单调队列/单调栈&#xff09; (单调队列优化DP) 代码源每日一题 Div1 选元素&#xff08;数据加强版&#xff09; 算法学习笔记(67): 单调栈 牛客多校第九场I (单调栈优化dp/单调栈的常用套路) 一. 单调队列 NC50528…