(Traverse) 132 Pattern

|

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

숫자의 패턴이 132 패턴으로, 첫번째-세번째-두번째 숫자의 순서의 조합이 존재하는 경우 true를 리턴, 그렇지 않은경우 False를 리턴하는 문제이다.

Bruth-forth로 3중 포문을 구현할수도 있지만 이럴 경우 타임아웃이 난다.

이중 포문으로 바꿔야 하는데, 수가 세개만 존재한다는 것을 생각하여 방법을 찾아야 한다.

public class Solution {
    public boolean find132pattern(int[] nums) {
    
        int i = Integer.MAX_VALUE;
        
        for(int j=0; j< nums.length; j++) {
        
            if(i > nums[j]) {
                i = nums[j];
            }
            if(i == nums[j]) {
                continue;
            }
            
            for(int k=j+1; k<nums.length; k++) {                
                if(i < nums[k] && nums[k] < nums[j]) {
                    return true;
                }
            }
            
        }
    
        return false;
    }
}