当前位置: 首页 > news >正文

【C语言】移除元素

移除元素


给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

#include <stdio.h>/*** RemoveElement函数用于移除数组中所有与指定值相同的元素。* 通过双指针技术,遍历数组并将不等于指定值的元素移动到数组的前部。* * @param nums 数组的指针,数组中的元素类型为char。* @param numsSize 数组的长度,类型为char,表示数组中元素的数量。* @param val 指定的值,类型为char,函数将移除数组中所有与该值相同的元素。* @return 返回移除指定值后数组的新长度,类型为int。*/
int RemoveElement(char* nums, char numsSize, char val)
{// 初始化两个指针i和j,它们都从数组的起始位置开始。int i = 0;int j = 0;// 遍历数组中的每个元素。for (i = 0; i < numsSize; i++){// 如果当前元素不等于指定值,则将其移动到j指针的位置,并将j向前移动。if (nums[i] != val){nums[j] = nums[i];j++;}}// 返回新数组的长度,即j的值。return j;
}// 主函数
int main()
{// 初始化一个字符数组,用于后续操作char arr[]={1,2,3,4,5,1,2,3,4,5};// 计算数组长度char arr_Length = sizeof(arr)/sizeof(arr[0]);// 初始化一个变量len,用于存储数组长度char len = 0;// 打印数组长度printf("%d\n",arr_Length);// 遍历并打印数组元素for (int i = 0; i < arr_Length; i++){printf("%d ",arr[i]);}printf("\n");// 调用RemoveElement函数移除数组中特定的元素,并更新数组长度len = RemoveElement(arr,arr_Length,1);// 打印更新后的数组长度printf("%d\n",len);// 遍历并打印更新后的数组元素for (int i = 0; i < len; i++){printf("%d ",arr[i]);}return 0;
}

采用快指针和慢指针的方法:在 RemoveElement 函数中设置两个索引,分别进行快指引和慢指引,其中 i 为快指引,j 为慢指引。当数组中的元素和目标元素不一样时,进行将 i 索引的数据赋值到 j 索引上,当当数组中的元素和目标元素一样时,不赋值,且 j 索引不增长。

相关文章:

【C语言】移除元素

移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要原地移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后…...

Python----Python高级(网络编程:网络高级:多播和广播,C/S架构,TCP,UDP,网络编程)

一、多播和广播 1.1、多播 1.1.1、定义 多播&#xff08;Multicast&#xff09;也称为组播&#xff0c;是一种一对多的通信方式&#xff0c;将信息从单个源发送到 多个特定的接收者。这些接收者组成一个特定的多播组&#xff0c;只有加入该组的设备才会接 收和处理多播数据。…...

CES 2025 上的创新方案——无电池智能纸尿裤-AP4470

这款纸尿裤采用了可重复使用的组件&#xff0c;通过检测液体的存在来增强老年人和婴儿的护理&#xff0c;即使电极上滴了几滴液体也是如此。 其原理为尿液中的水分作为电解液&#xff0c;将尿布里安装的两种导电性材料作为正负极&#xff0c;充当电池&#xff0c;从而产生300m…...

Java 运算符

运算符用于对变量和值执行运算。 在下面的示例中&#xff0c;我们使用 运算符将两个值相加&#xff1a; int x 100 50;尽管经常使用运算符将​​两个值加在一起&#xff0c;例如在上面的示例中&#xff0c;但是它也可以用于将一个变量和一个值或一个变量和另一个变量加在一…...

【一文读懂】什么是MVVM?

MVVM Vue 是一个渐进式的 JavaScript 框架&#xff0c;它采用了 MVVM&#xff08;Model-View-ViewModel&#xff09;设计模式&#xff0c;这使得它能够高效地进行数据绑定和用户界面的更新。 概念 1. Model&#xff08;模型&#xff09; 含义&#xff1a;Model 代表应用程序…...

GCD of Subset

法1&#xff1a; const int N1e6; signed main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int n,k; cin>>n>>k;vector<int>a(n1),cnt(N10);/*桶cnt不要用map实现&#xff01;&#xff01;&#xff01;速度太慢*/vector<vector<int>>…...

BY组态:工业自动化的未来,触手可及

在工业4.0的浪潮下&#xff0c;智能化、数字化已成为制造业发展的核心驱动力。作为工业自动化领域的重要工具&#xff0c;组态软件在实现设备监控、数据采集、流程控制等方面发挥着不可替代的作用。然而&#xff0c;传统的组态软件往往存在开发周期长、学习成本高、灵活性不足等…...

DeepSeek在linux下的安装部署与应用测试

结合上一篇文章&#xff0c;本篇文章主要讲述在Redhat linux环境下如何部署和使用DeepSeek大模型&#xff0c;主要包括ollama的安装配置、大模型的加载和应用测试。关于Open WebUI在docker的安装部署&#xff0c;Open WebUI官网也提供了完整的docker部署说明&#xff0c;大家可…...

华为昇腾920b服务器部署DeepSeek翻车现场

最近到祸一台HUAWEI Kunpeng 920 5250&#xff0c;先看看配置。之前是部署的讯飞大模型&#xff0c;发现资源利用率太低了。把5台减少到3台&#xff0c;就出了他 硬件配置信息 基本硬件信息 按照惯例先来看看配置。一共3块盘&#xff0c;500G的系统盘&#xff0c; 2块3T固态…...

JavaScript 内置对象-数组对象

在JavaScript中&#xff0c;数组&#xff08;Array&#xff09;是一种非常重要的数据结构&#xff0c;它允许我们以列表的形式存储多个值&#xff0c;并提供了丰富的内置方法来操作这些值。无论是处理简单的数值集合还是复杂的对象数组&#xff0c;数组对象都能提供强大的支持。…...

Qt——连接MySQL数据库之ODBC的方法详细总结(各版本大同小异,看这一篇就够了)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》 《QT开发实战》 《Android开发实战》 《实用硬件方案设计》 《结构建模设…...

进程令牌:Windows 安全架构中的关键元素

一、进程令牌概述 进程令牌&#xff08;Process Token&#xff09;是 Windows 操作系统中一个重要的安全机制&#xff0c;它包含了与进程安全上下文相关的详细信息。每个进程在执行时都会关联一个进程令牌&#xff0c;令牌用于确定该进程可以访问哪些资源以及能执行哪些操作。…...

基于springboot的超时代停车场管理平台(源码+文档)

大家好我是风歌&#xff0c;曾担任某大厂java架构师&#xff0c;如今专注java毕设领域。今天要和大家聊的是一款基于springboot的超时代停车场管理平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于Spring Boot的超时代停车场…...

缓存穿透、缓存击穿、缓存雪崩的区别与解决方案

1. 缓存穿透&#xff08;Cache Penetration&#xff09; 定义&#xff1a;大量请求查询 数据库中不存在的数据&#xff0c;导致请求绕过缓存直接访问数据库&#xff0c;造成数据库压力过大。 场景&#xff1a; 恶意攻击&#xff1a;例如用不存在的用户ID频繁请求。 业务误操作…...

箭头函数的this指向谁

先看1个重要原则&#xff1a; 由Vue管理的函数&#xff0c;一定不要写箭头函数&#xff0c;箭头函数的this就不再是Vue实例了 箭头函数的 this 指向在定义时确定&#xff0c;继承自外层作用域&#xff08;即定义时的上下文&#xff09;的 this&#xff0c;且无法通过 call、app…...

【愚公系列】《Python网络爬虫从入门到精通》012-字符串处理

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...

【Python】01-基础

目录 1、命令行简介1.1 命令行结构1.2 常用dos指令 2、环境变量2.1 查看2.2 添加2.3 修改2.4 删除 3、path环境变量4、进制5、文本文件和字符集6、Sublime使用 1、命令行简介 命令行就是文本交互页面&#xff0c;通过命令行可以使用指令来操作计算机 1.1 命令行结构 版本及版…...

Java-DFS(深度优先搜索)

原理 深度优先搜索的基本思路是从一个节点开始&#xff0c;依次访问它的每一个邻居节点&#xff0c;直到达到一个没有未被访问的邻居的节点为止。这个过程可以使用递归或者栈来实现。其特点是尽可能深入每一个分支&#xff0c;然后再回溯。 DFS算法常用于解决以下类型的问题&…...

AI大模型编程能力对比:DeepseekClaudeGemini

在当今快速发展的技术领域&#xff0c;人工智能&#xff08;AI&#xff09;模型在编程和数据处理方面的应用越来越广泛。不同的AI模型因其独特的设计理念和技术优势&#xff0c;适用于不同的编程任务和场景。 本文将对三种主流的AI模型——DeepSeek v3、Gemini Flash 2.0 和 C…...

用C++实现点到三角形最小距离的计算

1、全部代码 #include <iostream> #include <cmath> #include <array> #include <algorithm>// 二维点结构体 struct Point2D {double x, y;Point2D(double x 0, double y 0) : x(x), y(y) {} };// 计算点到线段的最小距离 double pointToSegmen…...

Calibre中文路径乱码终极解决方案:如何彻底告别拼音文件名困扰

Calibre中文路径乱码终极解决方案&#xff1a;如何彻底告别拼音文件名困扰 【免费下载链接】calibre-do-not-translate-my-path Switch my calibre library from ascii path to plain Unicode path. 将我的书库从拼音目录切换至非纯英文&#xff08;中文&#xff09;命名 项目…...

Keras模型推理超快

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 Keras模型推理加速&#xff1a;构建实时AI应用的超快引擎目录Keras模型推理加速&#xff1a;构建实时AI应用的超快引擎 引言&…...

C++内存管理优化:skmemory库模块化分配器实战指南

1. 项目概述与核心价值最近在折腾一个C项目&#xff0c;涉及到大量自定义内存分配策略&#xff0c;从简单的对象池到复杂的多线程内存管理&#xff0c;代码里到处都是new和delete&#xff0c;不仅性能瓶颈明显&#xff0c;调试内存泄漏更是让人头疼。就在这个当口&#xff0c;我…...

2026届最火的六大AI辅助论文平台推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在人工智能于内容创作相关领域里&#xff0c;有着关键应用的AI写作软件&#xff0c;它是依靠…...

联邦学习如何重塑社交网络?一篇讲透原理、应用与未来

联邦学习如何重塑社交网络&#xff1f;一篇讲透原理、应用与未来 引言 在数据成为核心生产要素的时代&#xff0c;社交网络平台沉淀了海量的用户关系与行为数据&#xff0c;其价值挖掘与隐私保护之间的矛盾日益尖锐。联邦学习&#xff08;Federated Learning&#xff09;作为…...

为 Claude Code 配置 Taotoken 作为后端大模型服务

为 Claude Code 配置 Taotoken 作为后端大模型服务 如果你习惯使用 Claude Code 作为编程助手&#xff0c;并且希望它能通过 Taotoken 平台调用多种大模型&#xff0c;那么这篇教程正适合你。Taotoken 提供了与 Anthropic 官方 API 兼容的通道&#xff0c;这意味着你可以将 Cl…...

基于提示词工程的AI智慧日报系统:零代码实现跨文化历史故事生成

1. 项目概述&#xff1a;一个永不重复的AI智慧日报系统每天早晨&#xff0c;当大多数人还在与闹钟挣扎时&#xff0c;我已经习惯性地打开手机&#xff0c;期待一份独特的“精神早餐”。它不是来自某个新闻客户端&#xff0c;也不是来自社交媒体的信息流&#xff0c;而是一段由A…...

Calva高级功能:REPL窗口、断点调试和性能分析

Calva高级功能&#xff1a;REPL窗口、断点调试和性能分析 【免费下载链接】calva Clojure & ClojureScript Interactive Programming for VS Code 项目地址: https://gitcode.com/gh_mirrors/ca/calva Calva是一款专为Visual Studio Code设计的Clojure & Clojur…...

UCIe协议层实战解析:PCIe 6.0与CXL 3.0的Flit模式到底怎么选?

UCIe协议层实战解析&#xff1a;PCIe 6.0与CXL 3.0的Flit模式到底怎么选&#xff1f; 在异构计算和Chiplet设计成为主流的今天&#xff0c;UCIe协议作为芯片间互连的新标准&#xff0c;其协议层模式选择直接影响着系统性能、功耗和面积效率。面对PCIe 6.0与CXL 3.0提供的多种Fl…...

Calibre中文路径乱码终结者:3分钟让你的电子书重获“姓名权“

Calibre中文路径乱码终结者&#xff1a;3分钟让你的电子书重获"姓名权" 【免费下载链接】calibre-do-not-translate-my-path Switch my calibre library from ascii path to plain Unicode path. 将我的书库从拼音目录切换至非纯英文&#xff08;中文&#xff09;命名…...