数据结构第四弹---数组相关OJ题

数组OJ

  • 1、移除元素
    • 1.1、题目描述
    • 1.2、思路讲解
    • 1.3、画图分析
    • 1.4、代码实现
    • 1.5、通过展示
  • 2、删除有序数组
    • 2.1、题目描述
    • 2.2、思路讲解
    • 2.3、画图分析
    • 2.4、代码实现
    • 2.5、通过展示
  • 3、合并两个有序数组
    • 3.1、题目描述
    • 3.2、思路讲解
    • 3.3、画图分析
    • 3.4、代码实现
    • 3.5、通过展示
  • 总结

1、移除元素

1.1、题目描述

移除元素
数据结构第四弹---数组相关OJ题_第1张图片

1.2、思路讲解

数据结构第四弹---数组相关OJ题_第2张图片

1.3、画图分析

下图为思路三的画图分析喔,想了解其他思路的分析私信博主喔!
数据结构第四弹---数组相关OJ题_第3张图片

1.4、代码实现

思路三

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

1.5、通过展示

数据结构第四弹---数组相关OJ题_第4张图片

2、删除有序数组

2.1、题目描述

删除有序数组
数据结构第四弹---数组相关OJ题_第5张图片

2.2、思路讲解

数据结构第四弹---数组相关OJ题_第6张图片

2.3、画图分析

思路三
数据结构第四弹---数组相关OJ题_第7张图片

2.4、代码实现

思路三

int removeDuplicates(int* nums, int numsSize) 
{
     int dest=0;
     int src=0;
     while(src<numsSize-1)
     {
         if(nums[src]!=nums[src+1])
         {
             nums[dest]=nums[src];
             dest++;
             src++;
         }
         else
         {
               src++;
         }
     }    
     nums[dest++]=nums[src];//最后一个元素的处理
     return dest;
}

2.5、通过展示

数据结构第四弹---数组相关OJ题_第8张图片

3、合并两个有序数组

3.1、题目描述

合并两个有序数组
数据结构第四弹---数组相关OJ题_第9张图片

3.2、思路讲解

数据结构第四弹---数组相关OJ题_第10张图片

3.3、画图分析

思路二
数据结构第四弹---数组相关OJ题_第11张图片

3.4、代码实现

思路二

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

3.5、通过展示

数据结构第四弹---数组相关OJ题_第12张图片

注:每个题目只写了一种最简单思路实现喔,有兴趣的uu可以去实现一下其他的思路喔,有不理解的也可以问博主喔!!!

总结

本篇博客就结束啦,谢谢大家的观看,如果公主少年们有好的建议可以留言喔,谢谢大家啦!

你可能感兴趣的:(数据结构,c语言,算法)