LeetCode - 414. Third Maximum Number(Array, Sorting)

YAMAMAMO·2022년 2월 3일
0

LeetCode

목록 보기
13/100

문제

https://leetcode.com/problems/third-maximum-number/

Given an integer array nums, return the third distinct maximum number in this array. If the third maximum does not exist, return the maximum number.

파파고번역
정수 배열 번호가 지정되면 이 배열에서 세 번째 고유 최대 수를 반환합니다. 세 번째 최대값이 없으면 최대값을 반환합니다.

Example 1:

Input: nums = [3,2,1]
Output: 1
Explanation:
The first distinct maximum is 3.
The second distinct maximum is 2.
The third distinct maximum is 1.

Example 2:

Input: nums = [1,2]
Output: 2
Explanation:
The first distinct maximum is 2.
The second distinct maximum is 1.
The third distinct maximum does not exist, so the maximum (2) is returned instead.

Example 3:
Input: nums = [2,2,3,1]
Output: 1
Explanation:
The first distinct maximum is 3.
The second distinct maximum is 2 (both 2's are counted together since they have the same value).
The third distinct maximum is 1.

풀이

자바입니다.

  • 주어진 배열을 Arrays.sort()를 사용, 오름차순으로 정렬합니다.
  • int thrid에 nums의 최대값을 넣습니다.(오름차순으로 정렬했기 때문에 가장 마지막 위치의 값이 최대값)
  • int count를 더해줌으로 세 번째 값을 찾습니다.
  • count==2 면 third를 반환합니다.
  • 그 외의 값이면 세 번째 값이 없기 때문에 nums의 최대값을 반환합니다.
class Solution {
    public int thirdMax(int[] nums) {
        Arrays.sort(nums);
        int count=0;
        int third=nums[nums.length-1];
        for(int i=nums.length-2;i>=0;i--){
            if(count==2) break;
            if(third>nums[i]){
                count++;
                third=nums[i];
            }   
        }
        if(count==2){
            return third;
        }else{
            return nums[nums.length-1];    
        }
        
    }
}
profile
안드로이드 개발자

0개의 댓글