diff --git a/code/src/main/java/com/raorao/interview/bytedance/Test.java b/code/src/main/java/com/raorao/interview/bytedance/Test.java new file mode 100644 index 00000000..850cebd2 --- /dev/null +++ b/code/src/main/java/com/raorao/interview/bytedance/Test.java @@ -0,0 +1,11 @@ +package com.raorao.interview.bytedance; + +/** + * . + * + * @author Xiong Raorao + * @since 2018-08-12-10:15 + */ +public class Test { + +} diff --git a/code/src/main/java/com/raorao/interview/bytedance/q2/Main.java b/code/src/main/java/com/raorao/interview/bytedance/q2/Main.java new file mode 100644 index 00000000..2f51f387 --- /dev/null +++ b/code/src/main/java/com/raorao/interview/bytedance/q2/Main.java @@ -0,0 +1,123 @@ +package com.raorao.interview.bytedance.q2; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Scanner; + +/** + * . + * + * @author Xiong Raorao + * @since 2018-08-12-10:28 + */ +public class Main { + + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + int m = Integer.parseInt(scanner.nextLine()); + List nodes = new ArrayList<>(); + for (int i = 0; i < m; i++) { + String[] input = scanner.nextLine().split(";"); + for (String s : input) { + String[] t = s.split(","); + int start = Integer.parseInt(t[0]); + int end = Integer.parseInt(t[1]); + nodes.add(new Node(start, end)); + } + } + List ret = process(nodes); + + while (process(ret).size() != ret.size()) { + ret = process(ret); + } + + // 排序 + ret.sort(Comparator.comparing(o -> o.start)); + StringBuilder sb = new StringBuilder(); + ret.forEach(e -> sb.append(e.start).append(",").append(e.end).append(";")); + System.out.println(sb.toString().substring(0, sb.toString().length() - 1)); + } + + private static List process(List nodes) { + List ret = new ArrayList<>(); + ret.add(nodes.get(0)); + int size = nodes.size(); + if (size == 1) { + System.out.println(ret.get(0).start + "," + ret.get(0).end); + return ret; + } + for (int i = 1; i < size; i++) { + Node mNode = merge(ret, nodes.get(i)); + if (mNode == null) { + ret.add(nodes.get(i)); + } else { + ret.set(mNode.index, mNode); + } + } + + return ret; + } + + private static Node merge(List nodes, Node b) { + Node ret = null; + for (int i = 0; i < nodes.size(); i++) { + Node tmp = merge(nodes.get(i), b); + if (tmp != null) { + ret = tmp; + ret.index = i; + } + } + return ret; + } + + private static Node merge(Node a, Node b) { + if (a.equals(b)) { + return a; + } + + // 保证a在前,b在后 + if (a.start > b.start) { + // 交换a + Node tmp = a; + a = b; + b = tmp; + } + + if (a.end < b.start) { + return null; + } else { + if (a.end < b.end) { + return new Node(a.start, b.end); + } + if (a.end > b.end) { + return new Node(a.start, a.end); + } + } + return null; + } + + static class Node { + + Integer start; + Integer end; + int index; + + public Node(int start, int end) { + this.start = start; + this.end = end; + } + + public boolean equals(Node obj) { + if (obj == null) { + return false; + } + if (start == obj.start && end == obj.end) { + return true; + } + return false; + } + } + + +} diff --git a/code/src/main/java/com/raorao/interview/bytedance/q5/Main.java b/code/src/main/java/com/raorao/interview/bytedance/q5/Main.java new file mode 100644 index 00000000..aa0efdef --- /dev/null +++ b/code/src/main/java/com/raorao/interview/bytedance/q5/Main.java @@ -0,0 +1,45 @@ +package com.raorao.interview.bytedance.q5; + +/** + * . + * + * @author Xiong Raorao + * @since 2018-08-12-10:16 + */ +public class Main { + + public static void main(String[] args) { + + } + + private static void process(int n, int m, int[] s, int[] t) { + + } + + private static int getMin(int[] src) { + int min = Integer.MAX_VALUE; + for (int i = 0; i < src.length; i++) { + if (min > src[i]) { + min = src[i]; + } + } + return min; + } + + private static int getMax(int[] src) { + int max = Integer.MIN_VALUE; + for (int i = 0; i < src.length; i++) { + if (max < src[i]) { + max = src[i]; + } + } + return max; + } + + static class ZB { + + public int s; + public int t; + } + +} diff --git a/code/src/main/java/com/raorao/java/A.java b/code/src/main/java/com/raorao/java/A.java new file mode 100644 index 00000000..91dd2598 --- /dev/null +++ b/code/src/main/java/com/raorao/java/A.java @@ -0,0 +1,11 @@ +package com.raorao.java; + +/** + * . + * + * @author Xiong Raorao + * @since 2018-08-10-23:27 + */ +public class A { + +} diff --git a/code/src/main/java/com/raorao/java/Test.java b/code/src/main/java/com/raorao/java/Test.java new file mode 100644 index 00000000..ab53b1ac --- /dev/null +++ b/code/src/main/java/com/raorao/java/Test.java @@ -0,0 +1,28 @@ +package com.raorao.java; + +public class Test { + static int a; + int b; + static int c; + + public int aMethod() { + a++; + return a; + } + + public int bMethod() { + b++; + return b; + } + + public static int cMethod() { + c++; + return c; + } + + public static void main(String args[]) { + String str = null; + + System.out.println(str); + } +} \ No newline at end of file diff --git a/code/src/main/java/com/raorao/java/test/A.java b/code/src/main/java/com/raorao/java/test/A.java new file mode 100644 index 00000000..5c857e1d --- /dev/null +++ b/code/src/main/java/com/raorao/java/test/A.java @@ -0,0 +1,11 @@ +package com.raorao.java.test; + +/** + * . + * + * @author Xiong Raorao + * @since 2018-08-10-23:27 + */ +public class A { + +}