Skip to content

Commit 680588b

Browse files
committed
Added 4 solutions
1 parent 065574c commit 680588b

File tree

4 files changed

+185
-0
lines changed

4 files changed

+185
-0
lines changed

Easy/Maximum Distance in Arrays.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution {
2+
public static int maxDistance(List<List<Integer>> arrays) {
3+
int min = arrays.get(0).get(0);
4+
int max = arrays.get(0).get(arrays.get(0).size()-1);
5+
int result = Integer.MIN_VALUE;
6+
7+
for (int i=1; i<arrays.size(); i++) {
8+
result = Math.max(result, Math.abs(arrays.get(i).get(arrays.get(i).size()-1) - min));
9+
result = Math.max(result, Math.abs(arrays.get(i).get(0) - max));
10+
11+
max = Math.max(max, arrays.get(i).get(arrays.get(i).size()-1));
12+
min = Math.min(min, arrays.get(i).get(0));
13+
}
14+
15+
return result;
16+
}
17+
}

Easy/Strobogrammatic Number.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Solution {
2+
public boolean isStrobogrammatic(String num) {
3+
Set<String> set = new HashSet<>();
4+
set.add("0");
5+
set.add("1");
6+
set.add("8");
7+
set.add("00");
8+
set.add("11");
9+
set.add("88");
10+
set.add("69");
11+
set.add("96");
12+
13+
int start = 0;
14+
int end = num.length()-1;
15+
16+
while (start <= end) {
17+
if (!set.contains(num.charAt(start) + "" + num.charAt(end))) {
18+
return false;
19+
}
20+
start++;
21+
end--;
22+
}
23+
24+
return true;
25+
}
26+
}

Easy/Valid Word Sequence.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
class Solution {
2+
public boolean validWordSquare(List<String> words) {
3+
List<String> vertical = getStrings(words);
4+
5+
for (int i=0; i<words.size(); i++) {
6+
if (!words.get(i).equals(vertical.get(i))) {
7+
return false;
8+
}
9+
}
10+
11+
return true;
12+
}
13+
14+
private List<String> getStrings(List<String> strings) {
15+
List<String> list = new ArrayList<>();
16+
17+
for (int i=0; i<strings.size(); i++) {
18+
StringBuilder sb = new StringBuilder();
19+
int j = 0;
20+
while (j < strings.size()) {
21+
if (i < strings.get(j).length()) {
22+
sb.append(strings.get(j).charAt(i));
23+
}
24+
25+
j++;
26+
}
27+
28+
list.add(sb.toString());
29+
}
30+
31+
return list;
32+
}
33+
}
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
class Solution {
2+
public static List<String> findMissingRanges(int[] nums, int lower, int upper) {
3+
List<String> list = new ArrayList<>();
4+
5+
if (nums.length == 0) {
6+
list.add(getString(lower, upper));
7+
return list;
8+
}
9+
10+
List<String> range = getRange(nums);
11+
int i = 0;
12+
13+
while (lower <= upper && i < range.size()) {
14+
String s = range.get(i);
15+
if (s.indexOf('>') != -1) {
16+
int start = Integer.parseInt(s.split("->")[0]);
17+
int end = Integer.parseInt(s.split("->")[1]);
18+
19+
if (lower != start) {
20+
list.add(getString(lower, start-1));
21+
}
22+
23+
lower = end + 1;
24+
}
25+
else {
26+
int num = Integer.parseInt(s);
27+
if (lower != num) {
28+
list.add(getString(lower, num-1));
29+
}
30+
31+
lower = num + 1;
32+
}
33+
34+
i++;
35+
}
36+
37+
String s = range.get(range.size()-1);
38+
if (s.indexOf('>') != -1) {
39+
int start = Integer.parseInt(s.split("->")[0]);
40+
int end = Integer.parseInt(s.split("->")[1]);
41+
42+
if (end != upper) {
43+
list.add(getString(end+1, upper));
44+
}
45+
}
46+
else {
47+
int num = Integer.parseInt(s);
48+
if (upper != num) {
49+
list.add(getString(num+1, upper));
50+
}
51+
}
52+
53+
return list;
54+
}
55+
56+
private static List<String> getRange(int[] num) {
57+
58+
List<String> list = new ArrayList<>();
59+
if (num.length == 0) {
60+
return list;
61+
}
62+
63+
int i = 1;
64+
StringBuilder sb = new StringBuilder();
65+
sb.append(num[0]);
66+
int count = 1;
67+
68+
while (i<num.length) {
69+
if (num[i] - num[i-1] == 1 || num[i] - num[i-1] == 0) {
70+
count++;
71+
}
72+
else {
73+
if (count > 1) {
74+
sb.append("->").append(num[i-1]);
75+
list.add(sb.toString());
76+
}
77+
else {
78+
list.add(sb.toString());
79+
}
80+
81+
sb = new StringBuilder();
82+
sb.append(num[i]);
83+
count = 1;
84+
}
85+
86+
i++;
87+
}
88+
89+
if (count > 1) {
90+
sb.append("->").append(num[num.length-1]);
91+
}
92+
93+
list.add(sb.toString());
94+
95+
return list;
96+
}
97+
98+
private static String getString(int start, int end) {
99+
StringBuilder sb = new StringBuilder();
100+
if (start == end) {
101+
sb.append(start);
102+
}
103+
else {
104+
sb.append(start).append("->").append(end);
105+
}
106+
107+
return sb.toString();
108+
}
109+
}

0 commit comments

Comments
 (0)