File tree Expand file tree Collapse file tree 2 files changed +74
-0
lines changed Expand file tree Collapse file tree 2 files changed +74
-0
lines changed Original file line number Diff line number Diff line change
1
+ import java .util .*;
2
+
3
+ public class LeetCode_169_129 {
4
+ public int majorityElement (int [] num ) {
5
+ int major = num [0 ], count = 1 ;
6
+ for (int i = 1 ; i < num .length ; i ++) {
7
+ if (count == 0 ) {
8
+ count ++;
9
+ major = num [i ];
10
+ } else if (major == num [i ]) {
11
+ count ++;
12
+ } else count --;
13
+
14
+ }
15
+ return major ;
16
+ }
17
+ }
Original file line number Diff line number Diff line change
1
+ import java .util .ArrayList ;
2
+ import java .util .HashMap ;
3
+ import java .util .List ;
4
+ import java .util .Map ;
5
+
6
+ public class LeetCode_241_129 {
7
+ private Map <String , List <Integer >> memo = new HashMap <>();
8
+
9
+ public List <Integer > diffWaysToCompute (String input ) {
10
+ int len = input .length ();
11
+ // check history
12
+ List <Integer > result = memo .get (input );
13
+ if (result != null ) {
14
+ return result ;
15
+ }
16
+ result = new ArrayList <>();
17
+ // base case
18
+ if (isDigit (input )) {
19
+ result .add (Integer .parseInt (input ));
20
+ memo .put (input , result );
21
+ return result ;
22
+ }
23
+ for (int i = 0 ; i < len ; i ++) {
24
+ char c = input .charAt (i );
25
+ if (c == '+' || c == '-' || c == '*' ) {
26
+ List <Integer > left = diffWaysToCompute (input .substring (0 , i ));
27
+ List <Integer > right = diffWaysToCompute (input .substring (i + 1 , len ));
28
+ for (Integer il : left ) {
29
+ for (Integer ir : right ) {
30
+ switch (c ) {
31
+ case '+' :
32
+ result .add (il + ir );
33
+ break ;
34
+ case '-' :
35
+ result .add (il - ir );
36
+ break ;
37
+ case '*' :
38
+ result .add (il * ir );
39
+ break ;
40
+ }
41
+ }
42
+ }
43
+ }
44
+ }
45
+ memo .put (input , result );
46
+ return result ;
47
+ }
48
+
49
+ private boolean isDigit (String s ) {
50
+ for (Character c : s .toCharArray ()) {
51
+ if (!Character .isDigit (c )) {
52
+ return false ;
53
+ }
54
+ }
55
+ return true ;
56
+ }
57
+ }
You can’t perform that action at this time.
0 commit comments