Skip to content

Commit

Permalink
update ws
Browse files Browse the repository at this point in the history
  • Loading branch information
yennanliu committed Sep 29, 2024
1 parent 7dfc877 commit 58c9629
Show file tree
Hide file tree
Showing 2 changed files with 121 additions and 60 deletions.
8 changes: 8 additions & 0 deletions leetcode_java/src/main/java/dev/workSpace4.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dev;

import java.lang.reflect.Array;
import java.util.*;
import java.util.stream.Collectors;

Expand Down Expand Up @@ -432,6 +433,13 @@ public int compare(Integer o1, Integer o2) {
System.out.println(z_);
}

System.out.println("array to str test --------------");
List<String> mystr99 = new ArrayList<>();
mystr99.add("a");
mystr99.add("b");
mystr99.add("c");
System.out.println(Arrays.toString(mystr99.toArray()));

}

private static int getDays(List<Integer> weightsList, int speed){
Expand Down
173 changes: 113 additions & 60 deletions leetcode_java/src/main/java/dev/workspace5.java
Original file line number Diff line number Diff line change
Expand Up @@ -212,87 +212,140 @@ private int getDays(List<Integer> weightsList, int speed){
*
*/
public int minAreaRect(int[][] points) {
// edge case
// if (points.length == 0 && points[0].length == 0){
// return 0;
// }
if (points.length == 1 || points[0].length == 1) {
return points.length * points[0].length;
}
// init
int x_len = 0;
int y_len = 0;
// find min x_len and min y_len

return x_len * y_len;
return 0;
}

// LC 1087
// https://leetcode.ca/2018-11-21-1087-Brace-Expansion/
// 5.02 pm - 5.20 pm
// public static void main(String[] args) {
// System.out.println(this.expand(s));
// public int minAreaRect(int[][] points) {
// // edge case
//// if (points.length == 0 && points[0].length == 0){
//// return 0;
//// }
// if (points.length == 1 || points[0].length == 1) {
// return points.length * points[0].length;
// }
// // init
// int x_len = 0;
// int y_len = 0;
// // find min x_len and min y_len
//
// return x_len * y_len;
// }

// LC 1087
// https://leetcode.ca/2018-11-21-1087-Brace-Expansion/
// 6.19 pm - 6.30 pm
// TODO : implement, validate
List<String> collected = new ArrayList<>();
List<String> regular = new ArrayList<>();
public String[] expand(String s) {

// no possible to have bracket ("{}")
if (s.length() < 3){
return new String[]{s};
}
List<String> candidates = new ArrayList<>();
for (String x : s.split("")){
Queue<String> q = new LinkedList<>();
boolean tooAdd = false;
if (x == "{"){
tooAdd = true;
break;
}
else if (!tooAdd){
q.add(x);
break;
}
else if (x == "}"){
tooAdd = false;
StringBuilder sb = new StringBuilder();
while(!q.isEmpty()){
sb.append(q.poll());
candidates.add(sb.toString());
}
}else{
}


}

// prepare list

// dfs
//List<String> collected = new ArrayList<>();
String[] x= (String[]) collected.toArray();
// order with lexicographical
// dfs (backtrack)
//String[] x = new String[]{};
return null;
}

return (String[]) collected.toArray(); // TODO : double check
private List<String> getCandidates(String s){
return null;
}

int strLen = 5; // TODO : fix
private void dfs(List<String> regular, List<String> candidates, int startIdx, String cur){
if (candidates.size()==0){
return;
private void backtrack(int startIdx, List<String> candidates, List<String> cur){
if (cur.size() == candidates.size()){
StringBuilder sb = new StringBuilder();
for (String x : cur){
sb.append(x);
}
String str = sb.toString();
if (!this.collected.contains(str)){
this.collected.add(str);
}
}
if (cur.length() == strLen){
this.collected.add(cur);
cur = "";
if (cur.size() > candidates.size()){
return;
}
if (cur.length() > strLen){
cur = "";
return;
// ??? check
for (int i = startIdx; i < candidates.size(); i++){
// update cur
cur.add(candidates.get(i));
// recursive
this.backtrack(i, candidates, cur);
// undo
cur.remove(cur.size()-1);
}

}





// 5.02 pm - 5.20 pm
// public static void main(String[] args) {
// System.out.println(this.expand(s));
// }

// List<String> collected = new ArrayList<>();
// List<String> regular = new ArrayList<>();
// public String[] expand(String s) {
//
// // no possible to have bracket ("{}")
// if (s.length() < 3){
// return new String[]{s};
// }
// List<String> candidates = new ArrayList<>();
// for (String x : s.split("")){
// Queue<String> q = new LinkedList<>();
// boolean tooAdd = false;
// if (x == "{"){
// tooAdd = true;
// break;
// }
// else if (!tooAdd){
// q.add(x);
// break;
// }
// else if (x == "}"){
// tooAdd = false;
// StringBuilder sb = new StringBuilder();
// while(!q.isEmpty()){
// sb.append(q.poll());
// candidates.add(sb.toString());
// }
// }else{
// }
//
//
// }
//
//
// // dfs
// //List<String> collected = new ArrayList<>();
// String[] x= (String[]) collected.toArray();
// // order with lexicographical
//
// return (String[]) collected.toArray(); // TODO : double check
// }
//
// int strLen = 5; // TODO : fix
// private void dfs(List<String> regular, List<String> candidates, int startIdx, String cur){
// if (candidates.size()==0){
// return;
// }
// if (cur.length() == strLen){
// this.collected.add(cur);
// cur = "";
// return;
// }
// if (cur.length() > strLen){
// cur = "";
// return;
// }
//
// }

// LC 981
// https://leetcode.com/problems/time-based-key-value-store/
// 4.25 pm
Expand Down

0 comments on commit 58c9629

Please sign in to comment.