Skip to content

Commit 19e7562

Browse files
authored
Merge pull request #349 from f-exuan21/main
[μ•„ν˜„] WEEK02 Solutions
2 parents 3e1d624 + bfdfbaa commit 19e7562

File tree

3 files changed

+92
-0
lines changed

3 files changed

+92
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode() {}
8+
* TreeNode(int val) { this.val = val; }
9+
* TreeNode(int val, TreeNode left, TreeNode right) {
10+
* this.val = val;
11+
* this.left = left;
12+
* this.right = right;
13+
* }
14+
* }
15+
*/
16+
17+
// time : O(n)
18+
// space : O(n)
19+
// n은 트리 λ…Έλ“œ 수
20+
21+
class Solution {
22+
23+
private int i = 0;
24+
Map<Integer, Integer> map = new HashMap<>();
25+
26+
public TreeNode buildTree(int[] preorder, int[] inorder) {
27+
28+
for(int i = 0; i < inorder.length; i++) {
29+
map.put(inorder[i], i);
30+
}
31+
32+
return build(preorder, inorder, 0, inorder.length);
33+
34+
}
35+
36+
private TreeNode build(int[] preorder, int[] inorder, int start, int end) {
37+
if(i >= preorder.length || start >= end) {
38+
return null;
39+
}
40+
41+
int value = preorder[i++];
42+
int index = map.get(value);
43+
44+
TreeNode leftTreeNode = build(preorder, inorder, start, index);
45+
TreeNode rightTreeNode = build(preorder, inorder, index+1, end);
46+
47+
return new TreeNode(value, leftTreeNode, rightTreeNode);
48+
}
49+
50+
}

β€Žcounting-bits/f-exuan21.javaβ€Ž

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//time : O(n)
2+
//space : O(n)
3+
4+
class Solution {
5+
6+
// f(n) = f(n >> 1) + (n & 1)
7+
8+
public int[] countBits(int n) {
9+
int[] answer = new int[n + 1];
10+
11+
answer[0] = 0;
12+
for(int i = 1; i <= n; i++) {
13+
answer[i] = answer[i >> 1] + (i & 1);
14+
}
15+
16+
return answer;
17+
}
18+
}

β€Žvalid-anagram/f-euxan21.javaβ€Ž

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// time : O(n)
2+
// space : O(1)
3+
4+
class Solution {
5+
public boolean isAnagram(String s, String t) {
6+
7+
if(s.length() != t.length()) return false;
8+
9+
int[] charCount = new int[26];
10+
11+
for(int i = 0; i < s.length(); i++) {
12+
charCount[s.charAt(i) - 'a']++;
13+
charCount[t.charAt(i) - 'a']--;
14+
}
15+
16+
for(int i : charCount) {
17+
if(i != 0) {
18+
return false;
19+
}
20+
}
21+
22+
return true;
23+
}
24+
}

0 commit comments

Comments
Β (0)