parent
6041ac97e1
commit
de2e3f6fb0
@ -1,4 +1,4 @@
|
||||
package class01_01;
|
||||
package class01;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class01_01;
|
||||
package class01;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class01_01;
|
||||
package class01;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class01_01;
|
||||
package class01;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class01_01;
|
||||
package class01;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class01_01;
|
||||
package class01;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class01_01;
|
||||
package class01;
|
||||
|
||||
public class Code06_BSAwesome {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class01_02;
|
||||
package class02;
|
||||
|
||||
public class Code01_Swap {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class01_02;
|
||||
package class02;
|
||||
|
||||
public class Code02_EvenTimesOddTimes {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class01_02;
|
||||
package class02;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
@ -1,4 +1,4 @@
|
||||
package class02_03;
|
||||
package class03;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
@ -1,4 +1,4 @@
|
||||
package class02_03;
|
||||
package class03;
|
||||
|
||||
public class Code02_DeleteGivenValue {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class02_03;
|
||||
package class03;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
@ -1,4 +1,4 @@
|
||||
package class02_03;
|
||||
package class03;
|
||||
|
||||
public class Code04_RingArray {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class02_03;
|
||||
package class03;
|
||||
|
||||
import java.util.Stack;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class02_03;
|
||||
package class03;
|
||||
|
||||
import java.util.Stack;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class02_03;
|
||||
package class03;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
@ -1,4 +1,4 @@
|
||||
package class02_03;
|
||||
package class03;
|
||||
|
||||
public class Code08_GetMax {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class02_03;
|
||||
package class03;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
@ -1,4 +1,4 @@
|
||||
package class03_04;
|
||||
package class04;
|
||||
|
||||
public class Code01_MergeSort {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class03_04;
|
||||
package class04;
|
||||
|
||||
public class Code02_SmallSum {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class03_04;
|
||||
package class04;
|
||||
|
||||
public class Code03_ReversePair {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class03_04;
|
||||
package class04;
|
||||
|
||||
public class Code04_BiggerThanRightTwice {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class03_05;
|
||||
package class05;
|
||||
|
||||
public class Code02_PartitionAndQuickSort {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class03_05;
|
||||
package class05;
|
||||
|
||||
import java.util.Stack;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class04_06;
|
||||
package class06;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
@ -1,4 +1,4 @@
|
||||
package class04_06;
|
||||
package class06;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.PriorityQueue;
|
@ -1,4 +1,4 @@
|
||||
package class04_06;
|
||||
package class06;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.PriorityQueue;
|
@ -1,4 +1,4 @@
|
||||
package class04_06;
|
||||
package class06;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.PriorityQueue;
|
@ -1,4 +1,4 @@
|
||||
package class04_07;
|
||||
package class07;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
@ -1,4 +1,4 @@
|
||||
package class04_07;
|
||||
package class07;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
@ -1,4 +1,4 @@
|
||||
package class04_07;
|
||||
package class07;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
@ -1,4 +1,4 @@
|
||||
package class04_07;
|
||||
package class07;
|
||||
|
||||
public class Inner<T> {
|
||||
public T value;
|
@ -1,4 +1,4 @@
|
||||
package class05_08;
|
||||
package class08;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class05_08;
|
||||
package class08;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class05_08;
|
||||
package class08;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class05_08;
|
||||
package class08;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class06_09;
|
||||
package class09;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class06_09;
|
||||
package class09;
|
||||
|
||||
import java.util.Stack;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class06_09;
|
||||
package class09;
|
||||
|
||||
public class Code03_SmallerEqualBigger {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class06_09;
|
||||
package class09;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class06_10;
|
||||
package class10;
|
||||
|
||||
public class Code01_FindFirstIntersectNode {
|
||||
|
@ -1,6 +1,6 @@
|
||||
package class07_10;
|
||||
package class10;
|
||||
|
||||
public class Code01_RecursiveTraversalBT {
|
||||
public class Code02_RecursiveTraversalBT {
|
||||
|
||||
public static class Node {
|
||||
public int value;
|
@ -1,8 +1,8 @@
|
||||
package class07_10;
|
||||
package class10;
|
||||
|
||||
import java.util.Stack;
|
||||
|
||||
public class Code02_UnRecursiveTraversalBT {
|
||||
public class Code03_UnRecursiveTraversalBT {
|
||||
|
||||
public static class Node {
|
||||
public int value;
|
@ -1,4 +1,4 @@
|
||||
package class07_11;
|
||||
package class11;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
@ -1,4 +1,4 @@
|
||||
package class07_11;
|
||||
package class11;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
@ -1,4 +1,4 @@
|
||||
package class07_11;
|
||||
package class11;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
@ -1,4 +1,4 @@
|
||||
package class07_11;
|
||||
package class11;
|
||||
|
||||
public class Code04_PrintBinaryTree {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class07_11;
|
||||
package class11;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
@ -1,4 +1,4 @@
|
||||
package class07_11;
|
||||
package class11;
|
||||
|
||||
public class Code06_SuccessorNode {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class07_11;
|
||||
package class11;
|
||||
|
||||
public class Code07_PaperFolding {
|
||||
|
@ -1,82 +0,0 @@
|
||||
package class11_17;
|
||||
|
||||
public class Code08_CardsInLine {
|
||||
|
||||
public static int win1(int[] arr) {
|
||||
if (arr == null || arr.length == 0) {
|
||||
return 0;
|
||||
}
|
||||
return Math.max(
|
||||
f(arr, 0, arr.length - 1),
|
||||
s(arr, 0, arr.length - 1)
|
||||
);
|
||||
}
|
||||
|
||||
// L....R
|
||||
// F S L+1..R
|
||||
// L..R-1
|
||||
public static int f(int[] arr, int L, int R) {
|
||||
if (L == R) {
|
||||
return arr[L];
|
||||
}
|
||||
|
||||
return Math.max(
|
||||
arr[L] + s(arr, L + 1, R),
|
||||
arr[R] + s(arr, L, R - 1)
|
||||
);
|
||||
}
|
||||
|
||||
// arr[L..R]
|
||||
public static int s(int[] arr, int L, int R) {
|
||||
if (L == R) {
|
||||
return 0;
|
||||
}
|
||||
return Math.min(
|
||||
f(arr, L + 1, R), // arr[i]
|
||||
f(arr, L, R - 1) // arr[j]
|
||||
);
|
||||
}
|
||||
|
||||
public static int win2(int[] arr) {
|
||||
if (arr == null || arr.length == 0) {
|
||||
return 0;
|
||||
}
|
||||
int N = arr.length;
|
||||
int[][] f = new int[N][N];
|
||||
int[][] s = new int[N][N];
|
||||
for(int i = 0; i < N;i++) {
|
||||
f[i][i] = arr[i];
|
||||
}
|
||||
// s[i][i] = 0;
|
||||
for(int i = 1; i < N;i++) {
|
||||
int L =0;
|
||||
int R =i;
|
||||
while(L < N && R < N) {
|
||||
|
||||
f[L][R] = Math.max(
|
||||
arr[L] + s[L + 1][ R],
|
||||
arr[R] + s[L][R - 1]
|
||||
);
|
||||
s[L][R] = Math.min(
|
||||
f[L + 1][R], // arr[i]
|
||||
f[L][R - 1] // arr[j]
|
||||
);
|
||||
|
||||
L++;
|
||||
R++;
|
||||
|
||||
}
|
||||
}
|
||||
return Math.max(f[0][N-1], s[0][N-1]);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
int[] arr = { 4,7,9,5,19,29,80,4 };
|
||||
// A 4 9
|
||||
// B 7 5
|
||||
System.out.println(win1(arr));
|
||||
System.out.println(win2(arr));
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package class08_12;
|
||||
package class12;
|
||||
|
||||
import java.util.LinkedList;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class08_12;
|
||||
package class12;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class08_12;
|
||||
package class12;
|
||||
|
||||
public class Code03_IsBalanced {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class08_12;
|
||||
package class12;
|
||||
|
||||
public class Code04_IsFull {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class08_12;
|
||||
package class12;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class08_12;
|
||||
package class12;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
@ -1,4 +1,4 @@
|
||||
package class08_13;
|
||||
package class13;
|
||||
|
||||
import java.util.LinkedList;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class08_13;
|
||||
package class13;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class08_13;
|
||||
package class13;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
@ -1,4 +1,4 @@
|
||||
package class08_13;
|
||||
package class13;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
@ -1,10 +1,10 @@
|
||||
package class09_13;
|
||||
package class13;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.TreeSet;
|
||||
|
||||
public class Code01_LowestLexicography {
|
||||
public class Code05_LowestLexicography {
|
||||
|
||||
public static String lowestString1(String[] strs) {
|
||||
if (strs == null || strs.length == 0) {
|
@ -1,4 +1,4 @@
|
||||
package class09_14;
|
||||
package class14;
|
||||
|
||||
import java.util.HashSet;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class09_14;
|
||||
package class14;
|
||||
|
||||
import java.util.PriorityQueue;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class09_14;
|
||||
package class14;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
@ -1,4 +1,4 @@
|
||||
package class09_14;
|
||||
package class14;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.PriorityQueue;
|
@ -1,4 +1,4 @@
|
||||
package class09_14;
|
||||
package class14;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
@ -1,4 +1,4 @@
|
||||
package class09_15;
|
||||
package class15;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
@ -1,4 +1,4 @@
|
||||
package class09_15;
|
||||
package class15;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class16;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class16;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Stack;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class16;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class16;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class16;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class16;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class16;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Comparator;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class16;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.HashSet;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class16;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class16;
|
||||
|
||||
public class Edge {
|
||||
public int weight;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class16;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class16;
|
||||
|
||||
public class GraphGenerator {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class10_17;
|
||||
package class16;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -0,0 +1,110 @@
|
||||
package class17;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Code04_PrintAllPermutations {
|
||||
|
||||
public static List<String> permutation1(String s) {
|
||||
List<String> ans = new ArrayList<>();
|
||||
if (s == null || s.length() == 0) {
|
||||
return ans;
|
||||
}
|
||||
char[] str = s.toCharArray();
|
||||
ArrayList<Character> rest = new ArrayList<Character>();
|
||||
for (char cha : str) {
|
||||
rest.add(cha);
|
||||
}
|
||||
String path = "";
|
||||
f(rest, path, ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
public static void f(ArrayList<Character> rest, String path, List<String> ans) {
|
||||
if (rest.isEmpty()) {
|
||||
ans.add(path);
|
||||
} else {
|
||||
int N = rest.size();
|
||||
for (int i = 0; i < N; i++) {
|
||||
char cur = rest.get(i);
|
||||
rest.remove(i);
|
||||
f(rest, path + cur, ans);
|
||||
rest.add(i, cur);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static List<String> permutation2(String s) {
|
||||
List<String> ans = new ArrayList<>();
|
||||
if (s == null || s.length() == 0) {
|
||||
return ans;
|
||||
}
|
||||
char[] str = s.toCharArray();
|
||||
g1(str, 0, ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
public static void g1(char[] str, int index, List<String> ans) {
|
||||
if (index == str.length) {
|
||||
ans.add(String.valueOf(str));
|
||||
} else {
|
||||
for (int i = index; i < str.length; i++) {
|
||||
swap(str, index, i);
|
||||
g1(str, index + 1, ans);
|
||||
swap(str, index, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static List<String> permutation3(String s) {
|
||||
List<String> ans = new ArrayList<>();
|
||||
if (s == null || s.length() == 0) {
|
||||
return ans;
|
||||
}
|
||||
char[] str = s.toCharArray();
|
||||
g2(str, 0, ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
public static void g2(char[] str, int index, List<String> ans) {
|
||||
if (index == str.length) {
|
||||
ans.add(String.valueOf(str));
|
||||
} else {
|
||||
boolean[] visited = new boolean[256];
|
||||
for (int i = index; i < str.length; i++) {
|
||||
if (!visited[str[i]]) {
|
||||
visited[str[i]] = true;
|
||||
swap(str, index, i);
|
||||
g2(str, index + 1, ans);
|
||||
swap(str, index, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void swap(char[] chs, int i, int j) {
|
||||
char tmp = chs[i];
|
||||
chs[i] = chs[j];
|
||||
chs[j] = tmp;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
String s = "acc";
|
||||
List<String> ans1 = permutation1(s);
|
||||
for (String str : ans1) {
|
||||
System.out.println(str);
|
||||
}
|
||||
System.out.println("=======");
|
||||
List<String> ans2 = permutation2(s);
|
||||
for (String str : ans2) {
|
||||
System.out.println(str);
|
||||
}
|
||||
System.out.println("=======");
|
||||
List<String> ans3 = permutation3(s);
|
||||
for (String str : ans3) {
|
||||
System.out.println(str);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package class10_17;
|
||||
package class17;
|
||||
|
||||
public class Edge {
|
||||
public int weight;
|
@ -1,4 +1,4 @@
|
||||
package class10_17;
|
||||
package class17;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
@ -1,4 +1,4 @@
|
||||
package class10_16;
|
||||
package class17;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class12;
|
||||
package class18;
|
||||
|
||||
public class Code01_RobotWalk {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class12;
|
||||
package class18;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
@ -1,4 +1,4 @@
|
||||
package class12;
|
||||
package class18;
|
||||
|
||||
public class Code03_Knapsack {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package class12;
|
||||
package class18;
|
||||
|
||||
public class Code04_CardsInLine {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue