2441.与对应负数同时存在的最大正整数
链接:2441.与对应负数同时存在的最大正整数
难度:Easy
标签:数组、哈希表、双指针、排序
简介:给你一个 不包含 任何零的整数数组 nums ,找出自身与对应的负数都在数组中存在的最大正整数 k 。返回正整数 k ,如果不存在这样的整数,返回 -1 。
题解 1 - cpp
- 编辑时间:2023-05-13
- 执行用时:16ms
- 内存消耗:19.2MB
- 编程语言:cpp
- 解法介绍:数组存储。
class Solution {
public:
int findMaxK(vector<int>& nums) {
int list[2005] = {0}, res = -1;
for (auto &num : nums) {
list[num + 1000] += 1;
if (list[-num + 1000]) res = max(res, abs(num));
}
return res;
}
};
题解 2 - typescript
- 编辑时间:2022-10-16
- 执行用时:76ms
- 内存消耗:45.9MB
- 编程语言:typescript
- 解法介绍:哈希存储。
function findMaxK(nums: number[]): number {
const set1 = new Set<number>();
const set2 = new Set<number>();
for (const num of nums) {
if (set1.has(-num)) set2.add(Math.abs(num));
set1.add(num);
}
return [...set2].sort((a, b) => b - a)[0] ?? -1;
}
题解 3 - python
- 编辑时间:2023-05-13
- 执行用时:76ms
- 内存消耗:16.2MB
- 编程语言:python
- 解法介绍:同上。
class Solution:
def findMaxK(self, nums: List[int]) -> int:
list = [0] * 2005
res = -1
for num in nums:
list[num + 1000] += 1
if list[-num + 1000]:
res = max(res, abs(num))
return res
题解 4 - rust
- 编辑时间:2023-05-13
- 执行用时:4ms
- 内存消耗:2MB
- 编程语言:rust
- 解法介绍:同上。
impl Solution {
pub fn find_max_k(nums: Vec<i32>) -> i32 {
let mut list = [0; 2005];
let mut res = -1;
for num in nums {
list[(num + 1000) as usize] += 1;
if list[(-num + 1000) as usize] != 0 {
res = res.max(num.abs());
}
}
res
}
}