【数据结构初阶】顺序表三道经典算法题(详解+图例)

Hello!很高兴又见到你了~~~

看看今天要学点什么来充实大脑吧——

目录

1、移除元素

【思路+图解】 

【总结】

2、删除有序数组中的重复项

【思路+图解】

【总结】

3、合并两个有序数组

【思路+图解】

【总结】

 至此结束,Show Time!


1、移除元素

【思路+图解】 

上面的例子第一个数是等于val,当不等于val 时可以自己试一下。新思路的时间复杂度为O(N),空间复杂度为O(N),结合思路我们尝试上代码:

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;
}

【总结】

通过把 src 指向的不等于 val 的数赋给 dst 指向的位置,实现把不等于 val 的数放到前面,而且刚好 dst 的值就是数组中不等于 val 的数据的个数,同时要注意循环的条件。

2、删除有序数组中的重复项

【思路+图解】

咱们直接上代码:

在图解第一个步骤中出现了重复赋值的情况。经过 dst +1 后,dst 指向的数据等于2,src 指向的数据也等于2,再把 src 指向数据的值赋给dst,这里出现了重复赋值,我们优化一下代码:

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

【总结】

通过 src 遍历数组,如果与 dst 指向的数据相等就跳过,不相等就先 dst++,再赋给 dst 指向的位置,限制条件 src<数组长度。这种方法思路清晰!

3、合并两个有序数组

【思路+图解】

思路理清,上代码:

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) 
{int l1=m-1;int l2=n-1;int l3=m+n-1;while(l1>=0&&l2>=0){if(nums1[l1]>nums2[l2]){nums1[l3--]=nums1[l1--];}else{nums1[l3--]=nums2[l2--];}}//出了while循环,要么l1<0,要么l2<0while(l2>=0){nums1[l3--]=nums2[l2--];}
}

【总结】

妙!多理解理解,记住这种方法,悟一悟,反正我太菜想不到这种方法......


  至此结束,Show Time!

完——

童话镇_小野来了_高音质在线试听_童话镇歌词|歌曲下载_酷狗音乐酷狗音乐为您提供由小野来了演唱的高清音质无损童话镇mp3在线听,听童话镇,只来酷狗音乐!icon-default.png?t=N7T8https://t3.kugou.com/song.html?id=8Ceht83CPV2

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

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

相关文章

TCP/IP协议,以及对等网络通信原理!

TCP/IP模型协议分层 应用层&#xff1a; HTTP&#xff1a;超文本传输协议&#xff08;网站访问WEB&#xff09;&#xff08;Apache、nginx&#xff09;(IIS) FTP&#xff1a;文件传输协议&#xff08;网络文件传输&#xff09; TFTP&#xff1a;简单文件传输协议&#xff0…

神经网络理论(机器学习)

motivation 如果逻辑回归的特征有很多&#xff0c;会造出现一些列问题&#xff0c;比如&#xff1a; 线性假设的限制&#xff1a; 逻辑回归是基于线性假设的分类模型&#xff0c;即认为特征与输出之间的关系是线性的。如果特征非常多或者特征与输出之间的关系是非线性的&#…

PyTorch LSTM 单步、多步时间预测

PyTorch LSTM 单步、多步时间预测 多维输入、多维输出&#xff1b;单步预测、多步滚动预测 import torch import torch.nn as nn import torch.optim as optimclass LSTMModel(nn.Module):def __init__(self, input_dim, hidden_dim, num_layers, output_dim):super(LSTMMode…

【云原生】Kubernetes微服务Istio:介绍、原理、应用及实战案例

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

西南民族大学学报人文社会科学版

《西南民族大学学报&#xff08;人文社会科学版&#xff09;》简介 《西南民族大学学报&#xff08;人文社会科学版&#xff09;》&#xff08;以下简称“学报”&#xff09;系国家民族事务委员会主管、西南民族大学主办的民族类综合性学术期刊。创刊于1979年&#xff0c;2000年…

数据恢复篇:适用于 Android 视频恢复的 6 个工具

在智能手机这个动态的世界里&#xff0c;每一刻都被捕捉并以数字方式存储&#xff0c;丢失珍贵的视频可能是一种令人心碎的经历。不必担心&#xff0c;因为 Android 生态系统提供了大量旨在挽救这些珍贵回忆的视频恢复应用程序。 这些应用程序是强大的工具&#xff0c;旨在挽救…

MongoDB文档整理

过往mongodb文档&#xff1a; https://blog.csdn.net/qq_46921028/article/details/123361633https://blog.csdn.net/qq_46921028/article/details/131136935https://blog.csdn.net/qq_46921028/article/details/139247847 1. MongoDB前瞻 1、MongoDB概述&#xff1a; MongoDB是…

Java--Collection集合

一、Collection 1.1 概述 Collection 层次结构 中的根接口。Collection 表示一组对象&#xff0c;这些对象也称为 collection 的元素【集合中只能存储引用类型】。一些 collection 允许有重复的元素&#xff0c;而另一些则不允许。一些 collection 是有序的&#xff0c;而另一…

华为智慧交通-高速公路视频云联网解决方案

华为高速公路视频云联网解决方案摘要&#xff1a; 智慧高速愿景智慧高速旨在实现人、车、路互信协同&#xff0c;提供更安全、高效、便捷的出行体验。通过全路段感知、全过程管控、全天候通行&#xff0c;以及智慧路段、服务区的建设&#xff0c;实现数字化、知识型、安全型、高…

用LangGraph搭建智能体—AI Agents in LangGraph(一)

1. 学习背景 LangGraph最近出来后如火如荼&#xff0c;最近AndrewNg又出了新鲜的学习课程&#xff0c;于是乎先了解一波。 学习地址&#xff1a;传送门 代码地址&#xff1a;传送门 废话不多说&#xff0c;开始干活。 2. 从头开始构建代理&#xff08;Build an Agent from…

ubuntu24无法网络无法连接的问题

今天使用ubuntu的最新版24.04碰见个很奇怪的问题&#xff0c;所有防火墙都是关闭的&#xff0c;但是无法访问3306端口。 通过官方文档发现&#xff0c;原来新版本引入了AppArmor&#xff0c;进行了跟高级别的安全控制&#xff0c; 使用命令aa-status查看 果然在生效 这就是为什…

厦门大学学报哲学社会科学版

《厦门大学学报&#xff08;哲学社会科学版&#xff09;》是厦门大学主办、教育部主管的高层次的哲学社会科学综合性学术刊物&#xff0c;2003年底首批入选教育部“哲学社会科学名刊工程”&#xff0c;2012年获国家社科基金学术期刊资助。 《厦门大学学报》的前身为《厦门大学…

[经验] 孙叔敖举于海,百里奚举于市的翻译 #学习方法#学习方法#微信

孙叔敖举于海,百里奚举于市的翻译 1、孙叔敖举于海 孙叔敖&#xff0c;春秋时期鲁国大夫&#xff0c;是古代中国的著名政治家和军事家&#xff0c;他被誉为“孔子之后”的大贤。 孙叔敖的主要贡献在于他的外交策略和军事管理能力。在他的领导下&#xff0c;鲁国积极扩张其疆…

前端学习(三)之CSS

一、什么是CSS html定义网页的结构和信息&#xff08;骨架血肉&#xff09;css定义网页的样式&#xff08;衣服&#xff09;js定义用户和网页的交互逻辑&#xff08;动作&#xff09; 通过CSS&#xff0c;可以指定页面中各个元素的颜色、字体、大小、间距、边框、背景等样式&…

pig4cloud启动流程

环境 SpringBoot版本&#xff1a;2.7.16 SpringSecurity版本&#xff1a;5.7.11 pig4cloud版本&#xff1a;3.7.1-JDK8 流程图 概述 pig4cloud是对SpringSecurity的实现&#xff0c;其工作原理脱离不了SpringSecurity&#xff1b;pig4cloud启动首先SecurityAutoConfigurati…

9.11和9.9哪个大?

没问题 文心一言 通义千问

【前端】JavaScript入门及实战46-50

文章目录 46 对象(1)47 对象(2)48 属性名和属性值49 基本和引用数据类型50 对象字面量 46 对象(1) <!DOCTYPE html> <html> <head> <title></title> <meta charset "utf-8"> <script type"text/javascript">/…

Puromycin(嘌呤霉素)— pac基因筛选抗生素

Puromycin是由Streptomyces alboniger&#xff08;白黑链霉菌&#xff09;产生的一种氨基糖苷类抗生素&#xff0c;可抑制原核细胞和真核细胞的肽基转移。Puromycin可抑制革兰氏阳性菌、多种动物细胞和昆虫细胞的生长&#xff0c;但是真菌和革兰氏阴性菌对Puromycin具有抗性&am…

Spring Boot外部配置加载顺序

官网地址&#xff1a; Externalized Configuration :: Spring Boot Spring Boot外部配置加载顺序 Spring Boot使用一种非常特定的PropertySource顺序设计&#xff0c;以便合理地覆盖值。后面的属性源可以覆盖前面定义的值(后面的优先级高于前面的)。属性源的考虑顺序如下&…

12.顶部带三角形的边框 CSS 关键字 currentColor

顶部带三角形的边框 创建一个在顶部带有三角形的内容容器。 使用 ::before 和 ::after 伪元素创建两个三角形。两个三角形的颜色应分别与容器的 border-color 和容器的 background-color 相同。一个三角形(::before)的 border-width 应比另一个(::after)宽 1px,以起到边框的作…