엔지니어 게시판
LeetCode 솔루션 분류

[5/7] 456. 132 Pattern

컨텐츠 정보

본문

[LeetCode 시즌 3] 2022년 5월 7일 문제입니다.

https://leetcode.com/problems/132-pattern/


456. 132 Pattern
Medium
3249181Add to ListShare

Given an array of n integers nums, a 132 pattern is a subsequence of three integers nums[i]nums[j] and nums[k] such that i < j < k and nums[i] < nums[k] < nums[j].

Return true if there is a 132 pattern in nums, otherwise, return false.

 

Example 1:

Input: nums = [1,2,3,4]
Output: false
Explanation: There is no 132 pattern in the sequence.

Example 2:

Input: nums = [3,1,4,2]
Output: true
Explanation: There is a 132 pattern in the sequence: [1, 4, 2].

Example 3:

Input: nums = [-1,3,2,0]
Output: true
Explanation: There are three 132 patterns in the sequence: [-1, 3, 2], [-1, 3, 0] and [-1, 2, 0].

 

Constraints:

  • n == nums.length
  • 1 <= n <= 2 * 105
  • -109 <= nums[i] <= 109

관련자료

댓글 1

austin님의 댓글

  • 익명
  • 작성일
class Solution {
public:
    bool find132pattern(vector<int>& nums) {
        for(auto [s, i, low] = tuple(stack<int>(), static_cast<signed>(nums.size() -1), optional<int>()); i >= 0; --i) {
            if (low.has_value() && nums[i] < *low) return true;
            while(!s.empty() && s.top() < nums[i]) {
                low = s.top();
                s.pop();
            }
            s.emplace(nums[i]);
        }
        return false;
    }
};
전체 404 / 1 페이지
번호
제목
이름

최근글


인기글


새댓글


Stats


  • 현재 접속자 829 명
  • 오늘 방문자 4,403 명
  • 어제 방문자 6,975 명
  • 최대 방문자 14,831 명
  • 전체 회원수 1,536 명
알림 0