题解 | #没有出现的编号#
题目考察的知识点
- 数组的遍历和访问
- 数组元素的判断和赋值
- 数值比较和取最大值
题目解答方法的文字分析
- 首先,定义一个变量
max并初始化为一个较小的数,这里使用了Integer.MIN_VALUE(Java 中的整数最小值)。 - 使用
for-each循环遍历数组nums,如果数组元素小于 0,则与max比较取较大值,并更新max。 - 第二个循环中,使用
for循环遍历数组nums的索引。如果数组元素大于等于 0,且小于数组长度,将数组元素的值作为索引,将对应位置的值修改为当前索引值。 - 接下来,判断
max是否还是初始值,如果是则将其置为 0。 - 第三个循环中,再次使用
for循环遍历数组nums的索引。- 输出数组元素的值。
- 如果数组元素不等于 0,并且索引值为 0,则返回数组 [1, max]。
- 否则,如果索引值不等于数组元素的值,则返回数组 [索引值, max]。
- 如果以上循环都没有返回结果,则表示数组中不存在缺失的元素和最大负数,返回数组 [0, 0]。
本题解析所用的编程语言
本题的解析使用了JavaScript作为编程语言。
完整且正确的编程代码
function findMissingAndMaxNegative(nums) {
let max = Number.MIN_SAFE_INTEGER;
for (let num of nums) {
if (num < 0)
max = Math.max(max, num);
}
for (let i = 0; i < nums.length; i++) {
if (nums[i] >= 0 && nums[i] < nums.length) {
nums[nums[i]] = nums[i];
}
}
max = max === Number.MIN_SAFE_INTEGER ? 0 : max;
for (let i = 0; i < nums.length; i++) {
console.log(nums[i]);
if (nums[i] !== 0 && i === 0)
return [1, max];
if (i !== nums[i])
return [i, max];
}
return [0, 0];
}
备注:Number.MIN_SAFE_INTEGER 是 JavaScript 的一个常量,用于表示 JavaScript 中可安全表示的最小整数。它的值是 -9007199254740991,也就是 -(2的53次方 - 1)。
在 JavaScript 里,由于使用 IEEE 754 标准表示数字,JavaScript 的整数范围是-9007199254740991 到 9007199254740991(不包括两个边界值)。超过这个范围的整数会失去精度。
使用 Number.MIN_SAFE_INTEGER 可以确保得到一个在 JavaScript 安全范围内的最小整数值。如果你需要表示更小的整数,可以使用 BigInt 类型或其他大数库。
题解 | 前端刷题 文章被收录于专栏
题目考察的知识点 题目解答方法的文字分析 本题解析所用的编程语言 完整且正确的编程代码

