slice 함수에서 새로운 vector 를 만들어서 값을 복사하고 있습니다.
최악의 경우 (n = 100000 이고, 트리의 모양이 linked list 처럼 생겼을 때)
입력으로 100000 크기의 vector 2개 생성
-> 첫 번째 호출에서 99999 크기의 vector 2개 상성
-> 두 번째 호출에서 99998 크기의 vector 2개 생성 -> ......
이런식으로 진행하기 때문에 공간복잡도가 O(n^2) 이 됩니다.
vector 전체를 복사하는 대신 index 만 넘겨주는 식으로 수정하면 메모리 초과 없이 통과할 수 있을 겁니다.
shrimp1998 3년 전
postorder의 경우 루트가 마지막 원소이니까 그 원소를 찾고 inorder에서 좌 우로 나누어 재귀적으로 구현했습니다. 그런데 18%에서 메모리 초과가 계속
뜹니다. 제 생각에는 함수의 재귀가 깊어져서 뜨는 건가? 싶지만 잘 모르겠습니다. 다른 분들의 풀이를 보니 vector의 포인터를 주지 않고 그냥 인덱스로 푸는 것 같습니다.