File tree 2 files changed +30
-18
lines changed
0501.Find Mode in Binary Search Tree
2 files changed +30
-18
lines changed Original file line number Diff line number Diff line change
1
+ import java .util .ArrayList ;
2
+
3
+ public class Solution {
4
+
1
5
public String [] findWords (String [] words ) {
2
- if (words == null ){
6
+ if (words == null ) {
3
7
return null ;
4
8
}
5
9
ArrayList <String > list = new ArrayList <>();
6
- String [] keyboards = {"qwertyuiop" ,"asdfghjkl" ,"zxcvbnm" };
10
+ String [] keyboards = {"qwertyuiop" , "asdfghjkl" , "zxcvbnm" };
7
11
for (int i = 0 ; i < words .length ; i ++) {
8
12
String word = words [i ].toLowerCase ();
9
- for (int j = 0 ; j < keyboards .length ; j ++) {
13
+ for (int j = 0 ; j < keyboards .length ; j ++) {
10
14
// 先用word首字符确定属于哪一行
11
- if (keyboards [j ].indexOf (word .charAt (0 ))> -1 ){
15
+ if (keyboards [j ].indexOf (word .charAt (0 )) > -1 ) {
12
16
// 判断word字符串所有字符是否都属于同一行
13
- boolean match = match (keyboards [j ], word ,list );
14
- if (match ){
17
+ boolean match = match (keyboards [j ], word , list );
18
+ if (match ) {
15
19
list .add (words [i ]);
16
20
}
17
21
break ;
@@ -22,10 +26,11 @@ public String[] findWords(String[] words) {
22
26
}
23
27
24
28
private boolean match (String keyboard , String word , ArrayList <String > list ) {
25
- for (int i = 1 ; i <word .length () ; i ++) {
26
- if (keyboard .indexOf (word .charAt (i ))< 0 ) {
29
+ for (int i = 1 ; i < word .length (); i ++) {
30
+ if (keyboard .indexOf (word .charAt (i )) < 0 ) {
27
31
return false ;
28
32
}
29
33
}
30
- return true ;
31
- }
34
+ return true ;
35
+ }
36
+ }
Original file line number Diff line number Diff line change 1
- int max =0 ;
2
- int cur =0 ;
3
- TreeNode preNode = null ;
1
+ import java .util .List ;
2
+ import java .util .ArrayList ;
3
+
4
+ public class Solution {
5
+
6
+ int max = 0 ;
7
+ int cur = 0 ;
8
+ TreeNode preNode = null ;
9
+
4
10
public int [] findMode (TreeNode root ) {
5
11
ArrayList <Integer > list = new ArrayList <>();
6
12
findMode (root , list );
7
13
int [] res = new int [list .size ()];
8
- for (int i = 0 ;i < list .size ();i ++){
14
+ for (int i = 0 ; i < list .size (); i ++) {
9
15
res [i ] = list .get (i );
10
16
}
11
17
return res ;
12
18
}
13
19
14
20
private void findMode (TreeNode root , ArrayList <Integer > list ) {
15
- if (root == null ){
21
+ if (root == null ) {
16
22
return ;
17
23
}
18
24
findMode (root .left , list );
19
- if (preNode != null && root .val == preNode .val ) {
25
+ if (preNode != null && root .val == preNode .val ) {
20
26
cur ++;
21
27
} else {
22
28
cur = 1 ;
23
29
}
24
- if (max < cur ) {
30
+ if (max < cur ) {
25
31
max = cur ;
26
32
list .clear ();
27
33
list .add (root .val );
28
- }else if (max == cur ) {
34
+ } else if (max == cur ) {
29
35
list .add (root .val );
30
36
}
31
37
preNode = root ;
32
38
findMode (root .right , list );
33
39
}
40
+ }
You can’t perform that action at this time.
0 commit comments