牛客网——序列中删除指定数字

简介: 牛客网——序列中删除指定数字

前言


今天笔者学了有序序列插入一个数组,和各位分享一下。

一、序列中删除指定数字


题目来源:

序列中删除指定数字_牛客题霸_牛客网

二、解题步骤


1.分析问题


本道题主要是在一个有序序列里删去一个指定数字,这就要我们去比对了。

2.错误代码如下


我最开始的思路:

我想先顺序查找,找到一样的了交换到下一位,最后输出的时候我输出少一位把最后那个给去掉

#include<stdio.h>
int main(){
    int n=0,a=0,b=0;
    int arr[51]={0};
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d ",&arr[i]);  //循环输入构成数组
    }
    scanf("%d",&a);
    for(int j=0;j<n;j++){
        if(a==arr[j]){        //找出输入整数a的位置
            b=arr[j];         //接下来的步骤是交换位置   
            arr[j]=arr[j+1];
            arr[j+1]=b;
        }
    }
        for(int k=0;k<n-1;k++){        //n-1是为了少输出一位,达到删去效果
            printf("%d ",arr[k]);
        }
    return 0;
}

887aa5f2a47f404f88824d9728e5a0fb.jpeg

以上就是我自以为完美的过程。

但是它有一个问题:

image.png

它只能去掉一个需要去掉的数字!!只能比对一个!

因为我们只抓住了第一个就有放开,一直抓着它往后面推,其他的不管一不一样都不管了。

3、修改之后:


其实很简单。

#include<stdio.h>
int main(){
    int n=0,a=0,b=0;
    int arr[51]={0};
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d ",&arr[i]);
    }
    scanf("%d",&a);
    for(int j=0;j<n;j++){
        if(arr[j]!=a)        //一个不等于就输出一个,等于就,不输出直接略过
        printf("%d ",arr[j]);
    }
    return 0;
}

总结


以上就是今天要讲的内容,本文仅仅简单介绍了删除数组中具体数字的方法,如有错误欢迎指正。

相关文章
【C刷题】矩阵相等判断与序列中删除指定的数字(下)
【C刷题】矩阵相等判断与序列中删除指定的数字(下)
|
9月前
|
SQL 监控 大数据
力扣180题:连续出现的数字
力扣180题:连续出现的数字
|
10月前
题目----序列中删除指定数字
题目----序列中删除指定数字
61 0
|
10月前
|
算法 Java C++
数据结构与算法面试题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。(提示:使用动态规划或者中心扩散)
数据结构与算法面试题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。(提示:使用动态规划或者中心扩散)
104 0
|
C语言
【C刷题】矩阵相等判断与序列中删除指定的数字(上)
【C刷题】矩阵相等判断与序列中删除指定的数字(上)
|
算法 Java
【算法题目解析】杨氏矩阵数字查找
一道面试时可能遇到的算法问题,杨氏矩阵。可以重点关注思考方式,而不是死记硬背。
66 0
剑指offer 45. 数字序列中某一位的数字
剑指offer 45. 数字序列中某一位的数字
76 0
序列中删除指定的数字(普通法、双指针法)
序列中删除指定的数字(普通法、双指针法)
力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数
力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数
168 0
力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数
|
索引
力扣刷题记录——434. 字符串中的单词数、448. 找到所有数组中消失的数字、455. 分发饼干
力扣刷题记录——434. 字符串中的单词数、448. 找到所有数组中消失的数字、455. 分发饼干
135 0
力扣刷题记录——434. 字符串中的单词数、448. 找到所有数组中消失的数字、455. 分发饼干