본문 바로가기

알고리즘45

[프로그래머스] 가장 긴 팰린드롬 DP 사용 class Solution { boolean[][] dp; public int solution(String s) { int answer = 0; dp = new boolean[s.length()][s.length()]; for(int i=0;i 2023. 12. 8.
[LeetCode] 501. Find Mode in Binary Search Tree class Solution { public int[] findMode(TreeNode root) { List values = new ArrayList(); dfs(root, values); int maxStreak = 0; int currStreak = 0; int currNum = 0; List ans = new ArrayList(); for (int num : values) { if (num == currNum) { currStreak++; } else { currStreak = 1; currNum = num; } if (currStreak > maxStreak) { ans.clear(); maxStreak = currStreak; } if (currStreak == maxStreak) { ans.a.. 2023. 12. 6.
[LeetCode] 145. Binary Tree Postorder Traversal class Solution { public List postorderTraversal(TreeNode root) { LinkedList ans = new LinkedList(); Stack stack = new Stack(); if (root == null) { return ans; } stack.push(root); while (!stack.isEmpty()) { TreeNode cur = stack.pop(); ans.addFirst(cur.val); if (cur.left != null) { stack.push(cur.left); } if (cur.right != null) { stack.push(cur.right); } } return ans; } } Postorder Traversal은 Left.. 2023. 12. 6.
[LeetCode] 144. Binary Tree Preorder Traversal public class Solution { public List preorderTraversal(TreeNode root) { List result = new ArrayList(); if (root == null) { return result; } Stack stack = new Stack(); stack.push(root); while (!stack.isEmpty()){ TreeNode node = stack.pop(); result.add(node.val); if (node.right != null){ stack.push(node.right); } if (node.left != null){ stack.push(node.left); } } return result; } } Preorder Travers.. 2023. 12. 5.
728x90