티스토리 뷰
inorder를 통해 BST를 traverse하면서 list에 오름차순으로 값을 넣고, 첫번째 list는 작은 숫자부터, 두번째 list는 큰 숫자부터 더하는 Two Pointer 방식으로 target을 찾았고 없으면 False를 반환한다.
class Solution:
def twoSumBSTs(self, root1: Optional[TreeNode], root2: Optional[TreeNode], target: int) -> bool:
def inorder(n):
if n == None:
return []
left = []
right = []
if n.left != None:
left = inorder(n.left)
if n.right != None:
right = inorder(n.right)
return left + [n.val] + right
treeA = inorder(root1)
treeB = inorder(root2)
a, b = 0, len(treeB)-1
while a < len(treeA) and b > -1:
sum_ = treeA[a] + treeB[b]
if sum_ == target:
return True
elif sum_ < target:
a += 1
else:
b -= 1
return False
참고:
반응형
'기술(Tech, IT) > 리트코드(LeetCode)' 카테고리의 다른 글
[LeetCode] 1244. Design A Leaderboard (0) | 2023.08.02 |
---|---|
[LeetCode] 1229. Meeting Scheduler (0) | 2023.08.01 |
[LeetCode] 2026. Low-Quality Problems (0) | 2023.07.30 |
[LeetCode] 2520. Count the Digits That Divide a Number (0) | 2023.07.29 |
[LeetCode] 1167. Minimum Cost to Connect Sticks (0) | 2023.07.21 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬
- 이코노미스트 에스프레소
- 이코노미스트
- DICTIONARY
- 리트코드
- defaultdict
- machine learning
- vertex shader
- 티스토리챌린지
- I2C
- Android
- Hash Map
- java
- 오블완
- 소켓 프로그래밍
- tf-idf
- leetcode
- min heap
- 안드로이드
- The Economist Espresso
- 머신 러닝
- 딕셔너리
- ml
- 투 포인터
- C++
- Python
- The Economist
- Computer Graphics
- join
- socket programming
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
반응형