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

        前言:有时候我们会遇到要在数组中删除指定元素,但是不能创建新的数组,那么这个时候应该如何操作呢?


✨✨✨这里是秋刀鱼不做梦的BLOG

✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客

废话不多讲,让我们直接开始~

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 在原地等待。

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


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/486128.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Go——指针和内存逃逸

区别于C/C中的指针&#xff0c;Go语言中的指针不能进行偏移和运算&#xff0c;是安全指针。 要搞明白Go语言中的指针概念需要先知道3个概念&#xff1a;指针地址&#xff0c;指针类型和指针取值。 一. Go语言的指针 Go语言中的函数传参都是值拷贝&#xff0c;当我们想修改某个…

页面router路由设计

Vue命名视图 命名视图 | Vue Router 如果要在 如何要在main区域里使用路由的话&#xff0c;整体区域是Layout&#xff0c;内涵Header和Nav以及Main path: /index,name: index,component: Layout, 若要只修改main区域的话&#xff0c;则取要加上v-if判断&#xff0c;来确实是…

Redis I/O多路复用

I/O多路复用 Redis的I/o多路复用中&#xff0c;将多个连接放到I/O复用程序中&#xff0c;这个复用程序具体是什么&#xff0c;是Redis的主线程吗 在Redis的I/O多路复用机制中&#xff0c;“复用程序”实际上指的是操作系统提供的系统调用接口&#xff0c;如Linux下的epoll、sel…

【办公类-16-07-07】“2023下学期 中班户外游戏2(有场地和无场地版,每天不同场地)”(python 排班表系列)

作品展示 背景需求&#xff1a; 2024年2月教务组发放的是“每周五天内容相同&#xff0c;两周10天内容相同”的户外游戏安排 【办公类-16-07-05】合并版“2023下学期 大班户外游戏&#xff08;有场地和无场地版&#xff0c;两周一次&#xff09;”&#xff08;python 排班表系…

论文导读 | 漫谈图神经网络

本文主要介绍图神经网络相关内容&#xff0c;包括图神经网络的基本结构以及近期研究进展。 背景 在实际生活中&#xff0c;许多数据都可以用图的形式表达&#xff0c;比如社交网络、分子模型、知识图谱、计算机网络等。图深度学习旨在&#xff0c;显式利用这些数据中的拓扑结…

【VALL-E-01】环境搭建

本系列文章系本人知乎账号迁移 本文系个人知乎专栏文章迁移 VALL-E 网络是GPT-SOVITS很重要的参考 知乎专栏地址&#xff1a; 语音生成专栏 相关文章链接&#xff1a; 【VALL-E-01】环境搭建 【VALL-E-02】核心原理 1、环境包使用 从效果看没有GPT-SOVITS 来的好 环境安装…

C#宿舍信息管理系统

简介 功能 1.发布公告 2.地理信息与天气信息的弹窗 3.学生信息的增删改查 4.宿舍信息的增删改查 5.管理员信息的增删改查 6.学生对宿舍物品的报修与核实 7.学生提交请假与销假 8.管理员对保修的审批 9.管理员对请假的审批 技术 1.采用C#\Winform开发的C\S系统 2.采用MD5对数据…

Java异常类型及异常处理方式

本章学习内容&#xff1a;使用异常处理机制&#xff0c;对程序运行过程中出现的异常情况进行捕捉并处理. 目录 &#x1f4cc; Java异常概述 &#x1f4cc; Java异常体系结构 &#x1f4cc; 常见的异常 &#x1f4cc; 异常处理 &#x1f4cc; Java异常概述 ○ 异常的概念&…

电商API数据采集接口——电商大数据构建及智能应用

现在越来越多的电商企业和运营都开始关注数据的应用&#xff0c;在13年淘宝运营技巧的爆发&#xff0c;这其实就是数据带来的红利。在数据大爆炸的时代&#xff0c;数据分析已经成为了企业制定策略、发现问题的重要方法&#xff0c;所以&#xff0c;数据分析绝对是企业管理的贤…

Linux命令学习入门

文章目录 登录注销关机重启Vim编辑器快捷键文件目录类打包、解包、压缩和解压指令输出重定向>和追加>>指令时间日期类搜索查找类用户管理文件所有者所在组权限管理变更权限crond任务时间调度crond相关指令&#xff1a;特殊符号说明&#xff1a; at定时任务磁盘分区磁盘…

数据结构 之 栈与单调栈习题 力扣oj(附加思路版)

#include<stack> --栈的头文件 栈的特点 &#xff1a; 先进后出 &#xff0c; 后进先出 相关函数&#xff1a; top() 获取栈顶元素 ,返回栈顶元素的值 pop() 删除栈顶元素 ,没有返回值 push() 放入元素 ,没有返回值 empty() 为空返回 true 否则返回false size() 元素…

fs模块与path模块 综合练习

一、自定义一个递归函数&#xff0c;来获取目录下所有的文件信息(目录除外)&#xff0c;以数组形式返回。 注意&#xff1a;因为异步涉及到等待&#xff0c;所以使用同步完成 //导入fs 与 path const fsrequire(fs); const pathrequire(path);function readFiles(paths){ // …

新台阶——蓝桥杯单片机省赛第十四届程序设计题目

在做十四届题目之前&#xff0c;常常听学长说&#xff0c;十四届以前拿省一真的是右手就行&#xff0c;并不相信&#xff0c;在经历十四届痛苦的大量修bug和优化之后&#xff0c;或许学长的话真说对了几分。话不多说&#xff0c;我们开始一起完成单片机第十四届程序设计题目。 …

Vue3 + Vite + TS + Element-Plus + Pinia项目(4)添加element-plus引用

1、main.ts添加引用 import ElementPlus from element-plus import element-plus/dist/index.cssconst app createApp(App) app.use(ElementPlus) app.mount(#app) 2、在 tsconfig.json 中通过 compilerOptions.type 指定全局组件类型。

docker 不同架构镜像融合问题解决

1、背景 docker 作为目前容器的标准之一&#xff0c;但是对于多种架构的平台的混合编译支撑不是很好。因此衍生了镜像融合&#xff0c;分别将多种不同的架构构建好&#xff0c;然后将镜像进行融合上传。拉取镜像的会根据当前系统的架构拉取不同的镜像&#xff0c;也可以通过 -…

Web常见标签属性

应用软件&#xff1a;c/s&#xff08;客户端与服务端&#xff09; b/s&#xff08;服务器与浏览器架构&#xff09;web前端&#xff1a;html5、css3、JavaScriptHtml5&#xff1a;超文本标记语言 超链接标签 语法规范<标签名> marquee 标签之间可以嵌套属性&#xff1a;…

基于 Appium 的 Android UI 自动化测试!(建议收藏)

自动化测试是研发人员进行质量保障的重要一环&#xff0c;良好的自动化测试机制能够让开发者及早发现编码中的逻辑缺陷&#xff0c;将风险前置。日常研发中&#xff0c;由于快速迭代的原因&#xff0c;我们经常需要在各个业务线上进行主流程回归测试&#xff0c;目前这种测试大…

【八股】Java线程之间协作

1. 指定线程执行顺序 可以使用join()方法&#xff08;但中间加了Thread.sleep(1000)以后就不按顺序执行&#xff0c;不知道为什么&#xff09; public static void main(String[] args) throws CloneNotSupportedException {// 创建线程对象Thread t1 new Thread(() -> {…

关闭 Microsoft Word 2010 配置窗口

关闭 Microsoft Word 2010 配置窗口 References 出现这种问题&#xff0c;主要是安装时所用账户和目前登陆的账户不为同一个账户造成的。或者你进行过覆盖安装或是重新安装过系统&#xff0c;但是 office 的安装目录没有更改。先激活 Microsoft Office&#xff0c;然后执行下列…

我们使用 Postgres 构建多租户 SaaS 服务时踩的坑

原文 Our Multi-tenancy Journey with Postgres Schemas and Apartment。这篇和之前发出的「如何使用 Postgres 对一个多租户应用分片」相呼应。 多租户 (Multip-tenancy) 是当下的热门话题。我对多租户应用程序的定义是一个能够服务于多个客户的软件系统&#xff0c;每个客户都…