当前位置: 首页 > 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 索引不增长。

http://www.lryc.cn/news/537962.html

相关文章:

  • Python----Python高级(网络编程:网络高级:多播和广播,C/S架构,TCP,UDP,网络编程)
  • CES 2025 上的创新方案——无电池智能纸尿裤-AP4470
  • Java 运算符
  • 【一文读懂】什么是MVVM?
  • GCD of Subset
  • BY组态:工业自动化的未来,触手可及
  • DeepSeek在linux下的安装部署与应用测试
  • 华为昇腾920b服务器部署DeepSeek翻车现场
  • JavaScript 内置对象-数组对象
  • Qt——连接MySQL数据库之ODBC的方法详细总结(各版本大同小异,看这一篇就够了)
  • 进程令牌:Windows 安全架构中的关键元素
  • 基于springboot的超时代停车场管理平台(源码+文档)
  • 缓存穿透、缓存击穿、缓存雪崩的区别与解决方案
  • 箭头函数的this指向谁
  • 【愚公系列】《Python网络爬虫从入门到精通》012-字符串处理
  • 【Python】01-基础
  • Java-DFS(深度优先搜索)
  • AI大模型编程能力对比:DeepseekClaudeGemini
  • 用C++实现点到三角形最小距离的计算
  • 解决前后端日期传输因时区差异导致日期少一天的问题
  • mmsegmentation自己的数据集+不同网络的config配对
  • Golang官方编程指南
  • ram的使用——初始化很重要
  • doris:最佳实践
  • [创业之路-299]:图解金融体系结构
  • RL--2
  • [JVM篇]分代垃圾回收
  • Dify本地安装
  • python | 两招解决第三方库安装难点
  • stm32mp15x 之 M4 使用 canfd