题目名称

给你一个 不包含 任何零的整数数组 nums ,找出自身与对应的负数都在数组中存在的最大正整数 k 。

返回正整数 k ,如果不存在这样的整数,返回 -1

示例

输入:nums = [-1,2,-3,3]
输出:3
解释:3 是数组中唯一一个满足题目要求的 k 。

输入:nums = [-1,10,6,7,-7,1]
输出:7
解释:数组中存在 1 和 7 对应的负数,7 的值更大。

题解

遍历查找绝对值相等的两个数,取所有数中的最大值

答案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* @param {number[]} nums
* @return {number}
*/
var findMaxK = function(nums) {
let numsSet = new Set()
let num = -1
for(let i = 0; i < nums.length; i++) {
let abs = -nums[i]
if(numsSet.has(nums[i])) {
num = Math.max(Math.abs(abs), num)
} else {
numsSet.add(abs)
}
}
return num
};