栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

力扣之顺序表

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣之顺序表

写在前面:

学完复杂度之后,算是正式进入到数据结构的学习。至此我们将首先了解顺序表的有关知识,包括增删查改等接口函数及其思想。顺序表其实就是数组,它要求数据在内存中必须是连续存储的。本文主要介绍力扣的三道顺序表的习题,这些习题主要利用双指针的思想来解决。

1.力扣第二十七题:移除元素

2.力扣第二十六题:删除重复元素

3.力扣第八十八题:合并两个有序数组

1.移除元素:

 想法清楚了,写代码就不是什么难事了。代码如下:

int removeElement(int* nums, int numsSize, int val)
{
     int src=0,dst=0;
     while(src 

2.删除重复元素(去重):

代码如下:

int removeDuplicates(int* nums, int numsSize)
{
    int src=0,dst=0;
    while(src 

 这里唯一要注意的就是返回值,dst只是数组的下标,而数组总元素的大小应该是下标加一。

3.合并两个有序数组:

 代码也很简单:

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
    
     int end1=m-1;
     int end2 = n-1;
     int i =m+n-1;
     while(end1>=0&&end2>=0)
     {
         if(nums1[end1]>nums2[end2])
         {
             nums1[i--]=nums1[end1--];
         }
         else
         {
             nums1[i--]=nums2[end2--];
         }
     }
     while(end2>=0)
     {
         nums1[i--]=nums2[end2--];
     }
}

写在后面:

各个题目的思想解读我对放在图片中一起讨论了,因为我感觉这样会更好理解。博主的图也是有限的,所以这篇博客就不放图了,骚话也没想到,继续期待下一篇吧,说不定下一篇就有了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029132.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号