Table of Contents
Description: Largest Positive Integer That Exists With Its Negative
Given an integer array nums that does not contain any zeros, find the largest positive integer k such that -k also exists in the array.
Return the positive integer k. If there is no such integer, return -1.
Example 1
<strong>Input:</strong> nums = [-1,2,-3,3] <strong>Output:</strong> 3 <strong>Explanation:</strong> 3 is the only valid k we can find in the array.
Example 2
<strong>Input:</strong> nums = [-1,10,6,7,-7,1] <strong>Output:</strong> 7 <strong>Explanation:</strong> Both 1 and 7 have their corresponding negative values in the array. 7 has a larger value.
Example 3
<strong>Input:</strong> nums = [-10,8,6,7,-2,-3] <strong>Output:</strong> -1 <strong>Explanation:</strong> There is no a single valid k, we return -1.
Constraints
1 <= nums.length <= 1000-1000 <= nums[i] <= 1000nums[i] != 0
Solution
class Solution {
//edge cases
//[-30, -30]
//[-30, 30, -30]
//[-1, 1, -1, -1, -1]
public int findMaxK(int[] nums) {
int[] pos = new int[1001];
int[] neg = new int[1001];
for(int n: nums){
if(n<0)
neg[Math.abs(n)]++;
else
pos[n]++;
}
for(int i=1000;i>=1;i--){
if(pos[i]>0 && neg[i]>0){
return i;
}
}
return -1;
}
}
Time Complexity
O(1), fixed length array
Space Complexity
O(1)