当前位置: 首页 > news >正文

顺序表算法题【不一样的解法!】

本章概述

  • 算法题1
  • 算法题2
  • 算法题3
  • 彩蛋时刻!!!

算法题1

力扣:移除元素
我们先来看这个题目的要求描述:在这里插入图片描述
把与val相同数值的元素移除掉,忽略元素的相对位置变化,然后返回剩下与val值不同的元素个数。来看下它给的例子描述:在这里插入图片描述

  • 题解:我们可以运用顺序表删除指定数据的思路来进行解题,我们可以定义双变量,用这两个变量去遍历数组元素,然后通过移动数组元素来移除指定元素。逻辑图展示:在这里插入图片描述
  • 进行代码展示:
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

力扣:删除有序数组中的重复项
我们来看下这个题目的描述:在这里插入图片描述
这个数组不是严格意义上的递增数组,要求把重复的元素给删掉,而且各个元素的相对位置不变化,最后返回不重复的元素个数。来看一下它给的例子:在这里插入图片描述

  • 题解:大体的思路和上一个算法题类似,也是需要两个变量进行遍历数组。在这里直接给大家展示代码:
int removeDuplicates(int* nums, int numsSize) {int src = 0;int dst = 0;while (src < numsSize) {if (nums[dst] == nums[src])src++;else {dst++;nums[dst] = nums[src];src++;}}return dst + 1;
}

结果运行图:在这里插入图片描述

算法题3

力扣:合并两个有序数组
我们来看一下题目的描述:在这里插入图片描述

  • 题解:nums1数组的有效数据个数为m个,nums2数组的有效数据个数为n个。我们要把ums2的元素插入nums1数组里面,那么nums1的数组大小要为m+n,才能保证能插入进去(题目描述的nums2大小为m+n),而且插进去后,还要是增序的顺序。来看题目举得例子:在这里插入图片描述

    • 方法1:我们先把nums2插入nums1里面,然后用冒泡排序进行nums1内部排序
    • 方法2:我们直接进行两个数组里面的元素大小比较,把大的元素放在nums1最后面,我们需要定义3个变量,l1 ,l2 和 l3。l1和l2进行比较大小,l3是用来存放较大的元素。进行逻辑图展示:在这里插入图片描述
      进行代码展示:
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(l2>=0)  //防止l1<0时,l2里面得元素还没,还没全放进nums1{nums1[l3--]=nums2[l2--];}
}

结果运行图:在这里插入图片描述

彩蛋时刻!!!

歌曲:《Call of Silence》
在这里插入图片描述
每章一句人生漫长,祝你每天都快快乐乐!感谢你能看到这里,点赞+关注+收藏+转发是对我最大的鼓励,咱们下期见!!!

http://www.lryc.cn/news/464077.html

相关文章:

  • VuePress的基本常识
  • 深入解析Vue2与Vue3的区别与Vue3的提升
  • 认识python数据分析
  • 以太网交换安全:MAC地址漂移与检测(实验:二层环路+网络攻击)
  • NeRF三维重建—神经辐射场Neural Radiance Field(二)体渲染相关
  • 软件测试工程师:如何写出好的测试用例?
  • 「图::连通」详解并查集并实现对应的功能 / 手撕数据结构(C++)
  • 基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
  • PyTorch 的 DataLoader 类介绍
  • 【设计模式系列】命令模式
  • uniapp中使用lottie实现JSON动画
  • AcWing275
  • Windows系统部署redis自启动服务【亲测可用】
  • 深入了解机器学习 (Descending into ML):线性回归
  • 每日OJ题_牛客_集合_排序_C++_Java
  • 鸿蒙网络编程系列27-HTTPS服务端证书的四种校验方式示例
  • scala继承
  • 【Hive】2-Apache Hive概述、架构、组件、数据模型
  • 关于目前面试八股文的一些心得体会
  • 大数据-178 Elasticsearch Query - Java API 索引操作 文档操作
  • PHP(一)从入门到放弃
  • 基于深度学习的生物启发的学习系统
  • 10_实现readonly
  • 简单介绍$listeners
  • 架构设计笔记-20-补充知识
  • scrapy 爬虫学习之【中医药材】爬虫
  • PDH稳频技术粗谈
  • [LeetCode] 130. 被围绕的区域
  • C语言位运算
  • Go 语言中格式化动词