넘치게 채우기

[LeetCode] 2441. Largest Positive Integer That Exists With Its Negative 본문

PS/LeetCode

[LeetCode] 2441. Largest Positive Integer That Exists With Its Negative

riveroverflow 2024. 5. 2. 14:25
728x90
반응형

https://leetcode.com/problems/largest-positive-integer-that-exists-with-its-negative/description/

leetcode - Largest Positive Integer That Exists With Its Negative

문제 유형 : 정렬, 구현, 그리디, 투포인터

문제 난이도 : Easy

 

문제

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.

 

정수 배열 nums가 주어진다. 0을 포함하지 않는다.

k와 -k가 같이 배열에 존재하는 최대 k의 값을 구하시오. 없으면 -1을 반환하시오.

 

풀이

단순히 정렬한 뒤에, 양 끝의 숫자들을 비교하면서 한쪽의 더 절대값이 크면, 그 포인터를 안쪽으로 오게 하면 된다.

같으면 그 숫자의 절대값을 반환하면 된다.

두 포인터의 순서가 엇갈리기 전까지 하고, 끝나고도 못찾으면 -1을 반환하면 된다.

 

코드

C++

class Solution {
public:
    int findMaxK(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        int i = 0;
        int j = nums.size()-1;
        while(i < j) {
            if(nums[i] * -1 == nums[j]) return nums[j];
            else if(nums[i] * -1 > nums[j]) i++;
            else j--;
        }
        return -1;
    }
};
728x90
반응형