414. 세 번 째 로 큰 수

979 단어 LeetCode배열
빈 그룹 이 아 닌 그룹 을 지정 하여 이 그룹의 세 번 째 큰 수 를 되 돌려 줍 니 다.존재 하지 않 으 면 배열 의 가장 큰 수 를 되 돌려 줍 니 다.알고리즘 시간 복잡 도 는 반드시 O (n) 여야 합 니 다.
예시 1:
  : [3, 2, 1]

  : 1

  :        1.

예시 2:
  : [1, 2]

  : 2

  :         ,          2 .

예시 3:
  : [2, 2, 3, 1]

  : 1

  :   ,         ,            。
      2  ,      。

문제 풀이 방향: set 로 저장 (요소 가 중복 되 지 않 고 질서 가 있 음), set 의 크기 가 3 보다 클 때 요 소 를 삭제 하고 되 돌려 줍 니 다.
class Solution {
public:
    int thirdMax(vector& nums) {
        sets;
        for(int i=0;i3){
                s.erase(s.begin());
            }                               
        }
        return s.size()==3?*s.begin():*s.rbegin();
    }
};

좋은 웹페이지 즐겨찾기