【C语言】顺序表经典算法

本文介绍的是两道顺序表经典算法题目。

移除元素

(来源:LeetCode)

题目

 

分析

我们很容易想到的办法是去申请一个新的数组,遍历原数组不等于val就把它拿到新数组里。但是题目的要求是不使用额外空间,所以这种方法我们无法使用。

现在我们还有一种很好的方法:双指针法(其实是两个变量)。我们定义两个变量src(源数据),dst(目标数据)。若src指向的值为val,则src++,若src指向的值不是val,将nums[dst]=nums[src],让src++,dst++。

代码参考

合并两个有序数组

题目

 

分析

 我们需要得到的是将num2合并到num1后的总递增数组。nums1的数组长度已经预留了num2元素的个数。

思路1:将num2中数据依次放入到num1数组的后面,用排序算法对num1排序。但是效率低下的排序算法会影响整体的运行效率。

思路2:创建三个变量l1、l2、l3,分别指向nums1最后一个有效元素、nums2最后一个元素以及nums1中最后一个位置。比较l1和l2指向的有效元素,把大的那一个放到l3指向的位置,然后向前走,保证把大的往后放。l1或者l2都有可能先遍历完,只需要处理l1先遍历完的情况(因为说明num2元素没放完到nums1中)。

代码参考

 

本文结束,感谢阅读^_^

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

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

相关文章

Python面向对象编程中的继承及其应用

目录 1. 继承的基本概念 2. 继承的语法 3. 继承的应用场景 4. 使用示例:汽车销售系统 5. 总结 继承是面向对象编程中的一个重要概念,它允许我们根据已有类创建新类,并继承已有类的属性和方法。在本文中,我们将学习Python中的…

Unity3D中,AI角色Rigidbody旋转导致的动画问题

在制作一些AI角色的时候,可能会运用到Rigidbody组件来使AI角色拥有一些相关的物理属性,但是AI角色在受到一些物理碰撞或者惯性等原因,会发生旋转导致动画出现意料外的错误,比如在由动转静的时候,可能会发生向前翻转等一…

卷积层里的填充和步幅

一、定义 1、对于卷积,我们另一个超参数是核的大小,通常使用的卷积核是33或者55,很少用偶数核 2、填充是为了让输出不变或者变大,是为了在输入不太大,又能使模型足够深的情况下使用 3、填充:在输入周围添…

【Java学习笔记】java图形界面编程

在前面的章节中,我们开发运行的应用程序都没有图形界面,但是很多应用软件,如Windows下的Office办公软件、扑克牌接龙游戏软件、企业进销存ERP系统等,都有很漂亮的图形界面。素以需要我们开发具有图形界面的软件。 Java图形界面编程…

Megatron-DeepSpeed与Megatron-LM在reduce grad上的差异

Megatron-DeepSpeed与Megatron-LM在reduce grad上的差异 一.Megatron-DeepSpeed 实现【deepspeed/runtime/engine.py】二.ModelLink 实现【ParamAndGradBuffer】1.ParamAndGradBuffer功能介绍2.实现原理A.分配一大块内存B.获取视图C.all_reduce grad 测试DP1,TP2,PP1,MBS1,zero…

【信即是功夫】人皆有良知在心中

良知就是做人、做事的准则,良知就是天理;实实在在地自信 每个人心中都有一个圣人,只因自己不能真的相信,把这个圣人埋没了 良知在每个人心中,无论你如何做,也无法泯灭它。即使身为盗贼的人,他…

WebStorm配置路径别名(jsconfig.json)

项目是 ViteVueTs 新建一个 jsconfig.json文件 {"compilerOptions": {"baseUrl": ".","paths": {"/*": ["./src/*"]}},"exclude": ["node_modules", "dist"] }然后在 vite.confi…

Sping源码(九)—— Bean的初始化(非懒加载)—mergeBeanDefinitionPostProcessor

序言 前几篇文章详细介绍了Spring中实例化Bean的各种方式,其中包括采用FactoryBean的方式创建对象、使用反射创建对象、自定义BeanFactoryPostProcessor以及构造器方式创建对象。 创建对象 这里再来简单回顾一下对象的创建,不知道大家有没有这样一个疑…

day01-切片和索引

day01-切片和索引 ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中list 的切片操作一样。 ndarray数组可以基于0-n的下标进行索引 注意,数组切片并不像列表切片会重新开辟一片空间,而是地址引用,需要使用.copy()…

算法day1 两数之和 两数相加 冒泡排序 快速排序

两数之和 最简单的思维方式肯定是去凑两个数,两个数的和是目标值就ok。这里两遍for循环解决。 两数相加 敲了一晚上哈哈,结果超过int范围捏,难受捏。 public class Test2 {public static void main(String[] args) { // ListNode l1 …

IO多路复用学习

Linux中的I/O多路复用 相关基础概念 在学习I/O多路复用之前,先学习一些相关的基础概念,便于理解。 内核缓冲区和用户缓冲区 😮 CPU 上会运行两种程序,一种是操作系统的内核程序(也称为系统程序)&#x…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(二十)

课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 30 节) P30《29.数据持久化-用户首选项》 实现数据持久化在harmonyOS中有很多种方式,比较常见的是以下两…

OpenCV教程02:图像处理系统1.0(翻转+形态学+滤波+缩放+旋转)

-------------OpenCV教程集合------------- Python教程99:一起来初识OpenCV(一个跨平台的计算机视觉库) OpenCV教程01:图像的操作(读取显示保存属性获取和修改像素值) OpenCV教程02:图像处理…

WIN32核心编程 - 数据类型 错误处理 字符处理

公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 数据类型 基本数据类型 Win32基本数据类型 错误处理 C语言中的错误处理 C中的错误处理 Win32中的错误处理 字符处理 C/C WIN32 字符处理 数据类型 基本数据类型 C/C语言定义了一系列…

Rocky Linux 9 系统OpenSSH CVE-2024-6387 漏洞修复

Rocky Linux 9系统 OpenSSH CVE-2024-6387 漏洞修复 1、漏洞修复2、修复思路3、修复方案3.1、方案一3.2、方案二 4、总结5、参考 1、漏洞修复 CVE-2024-6387:regreSSHion:OpenSSH 服务器中的远程代码执行(RCE),至少在…

【目标检测】DINO

一、引言 论文: DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection 作者: IDEA 代码: DINO 注意: 该算法是在Deformable DETR、DAB-DETR、DN-DETR基础上的改进,在学习该算法前&#…

《IT 领域准新生暑期预习指南:开启未来科技之旅》

IT专业入门,高考假期预习指南 高考的落幕,只是人生长途中的一个逗号,对于心怀 IT 梦想的少年们,新的征程已然在脚下铺展。这个七月,当分数尘埃落定,你们即将迈向新的知识殿堂,而这个假期&#…

Git使用[推送大于100M的文件后解救办法]

推送大于100M的文件后解救办法 本文摘录于:https://blog.csdn.net/u012150602/article/details/122687435只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人! 当有文件大于100M的时候在提交的时候没有问题,但是在push的似乎就不行…

番外篇 | 手把手教你如何去更换YOLOv5的检测头为ASFF_Detect

前言:Hello大家好,我是小哥谈。自适应空间特征融合(ASFF)的主要原理旨在解决单次检测器中不同尺度特征的不一致性问题。具体来说,ASFF通过动态调整来自不同尺度特征金字塔层的特征贡献,确保每个检测对象的特征表示是一致且最优的。本文所做出的改进是将YOLOv5的检测头更换…

程序算法设计分析

动态规划和分治、贪心相比有什么区别?各自的优缺点? 分治算法特征: 1)规模如果很小,则很容易解决。//一般问题都能满足 2)大问题可以分为若干规模小的相同问题。//前提 3)利用子问题的解&#x…