与对应负数同时存在的最大正整数【LC2441】
给你一个 不包含 任何零的整数数组
nums
,找出自身与对应的负数都在数组中存在的最大正整数k
。返回正整数
k
,如果不存在这样的整数,返回-1
。
今天状态还可以 37.8
-
思路
使用哈希表记录每个数的出现状态,如果某个数的相反数已经出现过,那么该数的绝对值符合题意,取最大值返回即可
-
实现
class Solution { public int findMaxK(int[] nums) { int res = -1; Set<Integer> seen = new HashSet<>(); for (int num : nums){ if (seen.contains(-1 * num)){ res = Math.max(res,Math.abs(num)); } seen.add(num); } return res; } }
- 复杂度
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( n ) O(n) O(n)
- 复杂度