删除数组中的指定元素(了解如何删除数组中的指定元素,并返回一个新的数组,看这一篇就足够了!)

简介: 删除数组中的指定元素(了解如何删除数组中的指定元素,并返回一个新的数组,看这一篇就足够了!)

1.题目描述

       先让我来看一下题目描述:

有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后数组中的元素,序列中未被删除数字的前后位置没有发生改变(不可以创建新的数组)。

我们用图来大体理解一下要求:

现在我们就大体理解了题目的要求。

2.题目讲解

       了解完了题目的意图,现在我们就对其进行讲解,首先我们先大致了解一下解题思路:

       1.要删除数组中的指定数据,我们就需要对数组进行遍历操作;

       2.不能创建新的数组,那么我们只能在原数组上进行修改操作;

解题代码如下:

#include<stdio.h>
int main()
{
  //原数组
  int arr[] = { 1,2,3,4,5,6,6,7,8,9,10 };
  //要被删除元素
  int deleteNumber = 6;
 
  int i = 0;
  int j = 0;
  //求出原数组长度
  int sz = sizeof(arr) / sizeof(arr[0]);
  //遍历数组
  for (i = 0; i < sz; i++)
  {
    //判断是否是所要删除的元素
    if (arr[i] != deleteNumber)
    {
      arr[j] = arr[i];
      j++;
    }
  }
  //打印修改后的数组中的数据
  for (int k = 0; k < j; k++)
  {
    printf("%d ", arr[k]);
  }
 
  return 0;
}

对于以上代码中的难以理解点,我们现在进行解释:

       在上面的代码中,我们创建了 i 和 j 两个变量,其中 i 变量是用来进行遍历数组的,而 j 变量是用来修改数组数据的,或者说是用来刷新原数组中的数据的;

简单来说 i 就是用来遍历整个数组,检查对应索引位置元素是否是目标元素,如果不是赋值给 j 位置,如果是则跳过该位置元素,而 j 在原地等待。

当然此问题有许多解决方案,以上只是讲解了其中一种,其余方案读者可以自己思考。


以上就是该问题的所有讲解了~~~

相关文章
|
1月前
|
前端开发 Java
java前端:删除数组中指定元素的方法
java前端:删除数组中指定元素的方法
|
9天前
|
编译器
数组\插入删除数组元素
数组\插入删除数组元素
10 0
|
1月前
在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置
|
1月前
如何删除数组中的某个元素?
如何删除数组中的某个元素?
26 0
|
1月前
|
算法 Java C++
请实现一个队列,支持以下操作:添加元素、删除第一个元素、获取第一个元素。
请实现一个队列,支持以下操作:添加元素、删除第一个元素、获取第一个元素。
26 0
|
8月前
曲线救国 —— 删除数组的指定元素
曲线救国 —— 删除数组的指定元素
24 0
|
8月前
删除数组中重复出现的值
删除数组中重复出现的值
54 0
|
10月前
删除顺序表中指定值的所有元素
顺序表是一种使用数组实现的数据结构。删除顺序表中指定值的所有元素,可以按照以下步骤进行操作:
231 1
|
存储
返回集合中最大,最小的元素,再将元素进行排序
返回集合中最大,最小的元素,再将元素进行排序
50 0
找出数组中单独的元素
此类题目需要非常熟悉位操作及位运算,同时要画图思考,才能将思路整理得很清楚。 或许有很多读者对我提出疑问,他们会认为这只是针对我举例的数组,才会有这种结果。而我想说:你们可以有时间尝试换一换数组中的元素,并且打乱顺序,也是可以做到的。本篇博客的目的主要是阐明逻辑,因为思路很重要!
110 0
找出数组中单独的元素