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

科举制度在元朝的发展

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

文章标签:科举制度

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

元朝禁汉人持兵器

元朝元朝

元朝确实对汉人持有兵器实行了严格限制,这是其统治政策的重要组成部分,主要出于巩固蒙古贵族统治、防范汉族反抗的考虑。以下是相关史实及背景的详细

儒臣耶律楚材

元朝耶律楚材

儒臣耶律楚材 耶律楚材(1190—1244),字晋卿,号湛然居士,契丹族,辽朝宗室后裔,是蒙元之际的重要政治家、思想家和文学家。他虽出身游牧民族贵族,却

名伶珠帘秀

元朝珠帘秀

珠帘秀(约1260—约1320),元代著名杂剧女演员,本姓朱,“珠帘秀”为艺名,被尊称为“朱娘娘”,是元代戏曲史上最具影响力的女性表演艺术家之一。其生平

元朝设立行省制

元朝元朝

元朝设立的行省制度是中国古代行政区划史上的重要创新,标志着中央集权制度在地方治理上的重大发展。以下是关于该制度的详细分析: 一、行省制度的背

元朝禁汉人持兵器

元朝元朝

元朝确实对汉人持有兵器实行了严格限制,这是其统治政策的重要组成部分,主要出于巩固蒙古贵族统治、防范汉族反抗的考虑。以下是相关史实及背景的详细

元朝设立行省制

元朝元朝

元朝设立的行省制度是中国古代行政区划史上的重要创新,标志着中央集权制度在地方治理上的重大发展。以下是关于该制度的详细分析: 一、行省制度的背
友情链接