검지 제공 (21 - 40)

1857 단어 알고리즘
21. 창고 의 압 입, 팝 업 시퀀스 (2017.0.12)
제목 설명 은 두 개의 정수 서열 을 입력 하고 첫 번 째 서열 은 창고 의 압축 순 서 를 표시 합 니 다. 두 번 째 서열 이 창고 의 팝 업 순서 인지 판단 하 십시오.창고 에 쌓 인 모든 숫자 가 같 지 않다 고 가정 하 세 요.예 를 들 어 서열 1, 2, 3, 4, 5 는 특정한 스 택 의 압 입 순서 이 고 서열 4, 5, 3, 2, 1 은 이 스 택 서열 에 대응 하 는 팝 업 서열 이지 만 4, 3, 5, 1, 2 는 이 스 택 서열 의 팝 업 서열 일 수 없다.(주의: 이 두 서열 의 길 이 는 같다)
사고방식 은 첫 번 째 서열 에 따라 순서대로 창고 에 들 어가 고 서열 2 의 순서에 따라 창고 에 들어간다. 즉, 창고 에 들 어 갈 때마다 창고 꼭대기 요소 가 서열 2 의 현재 위치 와 같 는 지 판단 하고, 같 으 면 창고 에서 나 와 계속 판단 한다. 그렇지 않 으 면 창고 가 비어 있 을 때 창고 에 계속 들어간다. 순환 이 끝 난 후에 창고 가 비어 있 으 면 팝 업 서열 이다. 그렇지 않 으 면 그렇지 않다.시퀀스 길이 가 0 인 특수 한 상황 에 주의 하 세 요.
답안
import java.util.ArrayList;
import java.util.Stack;

public class Solution {
    public boolean IsPopOrder(int [] pushA,int [] popA) {
        if(pushA.length==0){
            return false;
        }
        Stack stack=new Stack<>();
        for(int i=0,j=0;iwhile(!stack.empty()&&stack.peek()==popA[j]){
                stack.pop();
                j++;
            }
        }
        return stack.empty();
    }
}

좋은 웹페이지 즐겨찾기