与对应负数同时存在的最大正整数【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)
- 复杂度

给定一个无零整数数组,此问题要求找到最大的正整数k,其负数对应项也在数组中。解决方案是利用哈希表记录每个数的出现,如果遇到数的负数已存在,则更新最大值k。时间复杂度和空间复杂度均为O(n)。

被折叠的 条评论
为什么被折叠?



