2441 - Largest Positive Integer That Exists With Its Negative (Easy)
Problem Link
https://leetcode.com/problems/largest-positive-integer-that-exists-with-its-negative
Problem Statement
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:
Input: nums = [-1,2,-3,3]
Output: 3
Explanation: 3 is the only valid k we can find in the array.
Example 2:
Input: nums = [-1,10,6,7,-7,1]
Output: 7
Explanation: Both 1 and 7 have their corresponding negative values in the array. 7 has a larger value.
Example 3:
Input: nums = [-10,8,6,7,-2,-3]
Output: -1
Explanation: There is no a single valid k, we return -1.
** Constraints **
Approach 1: Sorting
Time complexity: , where n is the length of the array
Space complexity: for set
- Python
class Solution:
def findMaxK(self, nums: List[int]) -> int:
# add all elements to a set
seen = set(nums)
'''
sort the number in reverse order as we need to
find the largest number whose negative is
present in the array
'''
for num in sorted(list(nums), reverse = True):
if -num in seen:
return num
# if no negative is found for the maximum return -1
return -1
Approach 2: O(n) approach by maintaing a variable
Time complexity: , where n is the length of the array
Space complexity: for set
- Python
class Solution:
def findMaxK(self, nums: List[int]) -> int:
seen = set(nums)
'''
using max_so_far to store the maximum number
whose negative is present in the array
'''
max_so_far = -inf
for num in nums:
if -num in seen:
max_so_far = max(max_so_far, num)
# if no negative is found for the maximum return -1
return max_so_far if max_so_far != -inf else -1