File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree 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