Skip to content

Commit 292033d

Browse files
committed
Added 3 solutions
1 parent aac3441 commit 292033d

File tree

3 files changed

+100
-0
lines changed

3 files changed

+100
-0
lines changed

Easy/Number of Days in a Month.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class Solution {
2+
public int numberOfDays(int Y, int M) {
3+
int[] arr = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
4+
if (M == 2) {
5+
return isLeapYear(Y) ? arr[M - 1] + 1 : arr[M - 1];
6+
}
7+
8+
return arr[M- 1];
9+
}
10+
11+
private boolean isLeapYear (int y) {
12+
if (y % 4 == 0) {
13+
if (y % 100 == 0) {
14+
return y % 400 == 0;
15+
}
16+
else {
17+
return true;
18+
}
19+
}
20+
else {
21+
return false;
22+
}
23+
}
24+
}

Easy/Remove Vowels from a String.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution {
2+
public String removeVowels(String S) {
3+
StringBuilder sb = new StringBuilder();
4+
Set<Character> set = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u'));
5+
6+
for (char c : S.toCharArray()) {
7+
if (!set.contains(c)) {
8+
sb.append(c);
9+
}
10+
}
11+
12+
return sb.toString();
13+
}
14+
}

Medium/Maximum Average Subtree.java

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode(int x) { val = x; }
8+
* }
9+
*/
10+
class Solution {
11+
Map<TreeNode, Integer> sumMap = new HashMap<>();
12+
Map<TreeNode, Integer> numNodesMap = new HashMap<>();
13+
double maxAvg = -1.0;
14+
public double maximumAverageSubtree(TreeNode root) {
15+
dfs(root);
16+
return maxAvg;
17+
}
18+
19+
private void dfs(TreeNode root) {
20+
if (root == null) {
21+
return;
22+
}
23+
24+
int sum = getSum(root);
25+
int nodes = getNumOfNodes(root);
26+
27+
maxAvg = Math.max(maxAvg, ((double) (sum) / nodes));
28+
29+
dfs(root.left);
30+
dfs(root.right);
31+
}
32+
33+
private int getSum(TreeNode root) {
34+
if (root == null) {
35+
return 0;
36+
}
37+
38+
if (sumMap.containsKey(root)) {
39+
return sumMap.get(root);
40+
}
41+
42+
int sum = root.val + getSum(root.left) + getSum(root.right);
43+
sumMap.put(root, sum);
44+
45+
return sum;
46+
}
47+
48+
private int getNumOfNodes(TreeNode root) {
49+
if (root == null) {
50+
return 0;
51+
}
52+
53+
if (numNodesMap.containsKey(root)) {
54+
return numNodesMap.get(root);
55+
}
56+
57+
int numNodes = 1 + getNumOfNodes(root.left) + getNumOfNodes(root.right);
58+
numNodesMap.put(root, numNodes);
59+
60+
return numNodes;
61+
}
62+
}

0 commit comments

Comments
 (0)