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

科举制度在元朝的发展

朝代:元朝 | 时间: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 是数组的长度。我们只需要遍历一次

文章标签:科举制度

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

忽必烈继承汗位与统一战争

元朝忽必烈

忽必烈继承汗位与统一战争是蒙元历史的关键转折点,深刻影响了东亚政治格局。作为拖雷之子、蒙哥汗之弟,忽必烈于1260年在开平(后称上都)经部分蒙古贵

忽必烈登基称帝

元朝忽必烈

1260年5月5日,忽必烈在开平(今内蒙古正蓝旗)召开忽里台大会,在部分蒙古贵族支持下即位为大蒙古国第五任大汗,并颁布《即位诏》,正式采用汉式年号"中

郭守敬制定授时历法

元朝郭守敬

郭守敬制定《授时历》是中国古代天文学史上的重大成就,主要体现在以下几个方面: 1. 背景与动因 《授时历》制定于元朝至元年间(1281年颁布),由郭守

元朝文人虞集诗词研究

元朝元朝

元朝文人虞集(1272—1348)是元代重要的文学家、史学家,字伯生,号道园,谥文靖,祖籍四川仁寿,后迁居江西崇仁。他是元代“儒林四杰”之一,与杨载、范

元朝文人虞集诗词研究

元朝元朝

元朝文人虞集(1272—1348)是元代重要的文学家、史学家,字伯生,号道园,谥文靖,祖籍四川仁寿,后迁居江西崇仁。他是元代“儒林四杰”之一,与杨载、范

元朝宗教多元共存

元朝元朝

元朝(1271-1368年)是中国历史上首个由少数民族建立的大一统王朝,其宗教政策以多元包容著称。蒙古统治者采取"因俗而治"的策略,通过兼容并蓄的宗教管理巩
友情链接