java IntelliJ IDEA教程 JavaWeb 网站favicon图标制作 OpenCV4 unity 作用域 html azure memory module matlab向上取整 后台ui模板 git视频教程 short几个字节 matlab复数求模 pcie高速固态硬盘 websocket库 docker启动命令 python中get函数 windows安装python环境 python随机整数 java编程课程 java目录 java创建目录 java的集合 java中文文档 linux入门基础 东方头条邀请码 掌门一对一下载 毕业证件照 方正兰亭粗黑字体下载 pp安卓助手 fla文件用什么打开 gmail邮箱打不开 答题器下载 方正小标宋gbk jquery版本 sw2018 爬虫项目
当前位置: 首页 > 学习教程  > 编程语言

LeetCode刷题(10)--移除元素

2021/1/28 23:22:15 文章标签:

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

题目描述

给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

示例:
给定 nums = [3,2,2,3], val = 3,
函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。

示例:
给定 nums = [0,1,2,2,3,0,4,2], val = 2,
函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。
注意这五个元素可为任意顺序。

解题思路

int Remove(int num[],int n,int val)
{
	int size=0;
	for(int i=0;i<n;i++)
	{
		if(num[i]!=val)
		{
			num[size++]=num[i];
		}
	}
	return size;
}
int main()
{
	int a[4]={3,2,2,3};
	cout<<Remove(a,4,3)<<endl;
	cout<<"第一个元素为:"<<a[0]<<endl;
	cout<<"第二个元素为:"<<a[1]<<endl;
	return 0;
}

结果:
在这里插入图片描述
分析:
数组为{3,2,2,3}时:
1.当i=0时,num[0]=3=val。
2.当i=1时,num[1]=2!=val,num[1]=2。
3.当i=2时,num[2]=2!=val,num[2]=2。
4.当i=3时,num[3]=3=val。
所以删除后的数组的前两个元素都为2。


本文链接: http://www.dtmao.cc/news_show_650190.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?