位置:首页 >> 历史事件 >> 元朝 >> 详情

科举制度在元朝的发展

朝代:元朝 | 时间:2025-05-16 | 阅读:5570次
历史人物 ► 元朝

科举# 1. 题目描述

科举制度在元朝的发展

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

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

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

示例 1:

给定 nums = [3,2,2,3], val = 3,

函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。

你不需要考虑数组中超出新长度后面的元素。

示例 2:

给定 nums = [0,1,2,2,3,0,4,2], val = 2,

函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。

注意这五个元素可为任意顺序。

你不需要考虑数组中超出新长度后面的元素。

2. 解题思路

这道题与之前的“删除排序数组中的重复项”问题类似,可以使用双指针法来解决。具体步骤如下:

1. 初始化指针:使用两个指针,`i` 作为慢指针,`j` 作为快指针。

2. 遍历数组:快指针 `j` 遍历数组中的每一个元素。

3. 比较元素:当 `nums[j]` 不等于 `val` 时,将 `nums[j]` 的值复制到 `nums[i]`,然后递增 `i`。

4. 返回结果:遍历结束后,`i` 的值即为新数组的长度。

这种方法确保了所有不等于 `val` 的元素都被移动到了数组的前面,而数组后面的元素不需要关心。

3. 代码实现

java

public int removeElement(int[] nums, int val) {

int i = 0;

for (int j = 0; j < nums.length; j++) {

if (nums[j] != val) {

nums[i] = nums[j];

i++;

}

}

return i;

}

4. 复杂度分析

时间复杂度:O(n),其中 n 是数组的长度。我们只需要遍历一次

文章标签:科举制度

上一篇:司马光编资治通鉴 | 下一篇:乾隆下江南巡游

元朝对外交流与外交政策研究

元朝元朝

元朝(1271—1368年)是中国历史上由蒙古族建立的统一王朝,其对外交流与外交政策具有鲜明的多元性和开放性。元朝继承了蒙古帝国的广阔疆域,与欧亚大陆多

科举制度在元朝的发展

元朝元朝

科举# 1. 题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地

铁穆耳一统帝国的政略探究

元朝铁穆耳

铁穆耳(元成宗,1265-1307年)作为元朝第二位皇帝,其统治时期(1294-1307年)是元朝从扩张转向巩固的关键阶段。他的政略主要体现在以下几个方面: 一、继承

马可波罗游历中国

元朝元朝

马可·波罗是13世纪意大利威尼斯商人、旅行家,其著作《马可·波罗游记》记录了他在中国的见闻。根据现有史料,他的游历大致如下:1. 来华背景 马可·波

元朝对外交流与外交政策研究

元朝元朝

元朝(1271—1368年)是中国历史上由蒙古族建立的统一王朝,其对外交流与外交政策具有鲜明的多元性和开放性。元朝继承了蒙古帝国的广阔疆域,与欧亚大陆多

科举制度在元朝的发展

元朝元朝

科举# 1. 题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地
友情链接