[LeetCode] Largest Positive Integer That Exists With Its Negative

아르당·2026년 9월 10일

LeetCode

목록 보기
518/561
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

정수 배열 nums가 주어지고 0은 포함되지 않고, 배열 내에 -k가 존재하는 가장큰 양의 정수 k를 찾아라.
양의 정수 k를 반환해라. 그런 정수가 없다면 -1을 반환해라.

Example

#1
Input: nums = [-1, 2, -3, 3]
Output: 3
Explanation: 3만 유효한 k이고 배열 내에서 찾을 수 있다.

#2
Input: nums = [-1, 10, 6, 7, -7, 1]
Output: 7
Explanation: 1과 7 둘 다 배열 내에서 대응하는 음수 값을 가진다. 7이 더 큰 값이다.

#3
Input: nums = [-10, 8, 6, 7, -2, -3]
Output: -1
Explanation: 유효한 k가 없어서, -1을 반환한다.

Constraints

  • 1 <= nums.length <= 1000
  • -1000 <= nums[i] <= 1000
  • nums[i] != 0

Solved

class Solution {
    public int findMaxK(int[] nums) {
        Arrays.sort(nums);

        int left = 0;
        int right = nums.length - 1;
        int max = Integer.MIN_VALUE;

        while(left < right){
            int sum = nums[left] + nums[right];

            if(sum == 0){
                max = Math.max(max, nums[right]);
                left++;
                right--;
            }else if(sum < 0){
                left++;
            }else{
                right--;
            }
        }

        return max != Integer.MIN_VALUE ? max : -1;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글