9.6
This commit is contained in:
parent
d90c453a20
commit
2fb7dfb2df
@ -1,35 +1,5 @@
|
|||||||
package com.raorao;
|
package com.raorao;
|
||||||
|
|
||||||
import afu.org.checkerframework.checker.igj.qual.I;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.io.OutputStreamWriter;
|
|
||||||
import java.util.ArrayDeque;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Deque;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.PriorityQueue;
|
|
||||||
import java.util.Random;
|
|
||||||
import java.util.concurrent.ArrayBlockingQueue;
|
|
||||||
import java.util.concurrent.BlockingDeque;
|
|
||||||
import java.util.concurrent.BlockingQueue;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
import java.util.concurrent.ConcurrentLinkedDeque;
|
|
||||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
|
||||||
import java.util.concurrent.DelayQueue;
|
|
||||||
import java.util.concurrent.LinkedBlockingQueue;
|
|
||||||
import java.util.concurrent.PriorityBlockingQueue;
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import java.util.stream.IntStream;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
import sun.awt.image.ImageWatched.Link;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* .
|
* .
|
||||||
*
|
*
|
||||||
@ -41,40 +11,7 @@ public class Test {
|
|||||||
private int a;
|
private int a;
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
// //System.out.println(foo());
|
|
||||||
// int r = new Test().foo();
|
|
||||||
// //System.out.println(r);
|
|
||||||
// PriorityBlockingQueue<Integer> aa;
|
|
||||||
// LinkedBlockingQueue<Integer> ss;
|
|
||||||
// ss = new LinkedBlockingQueue<>();
|
|
||||||
// ss.add(1);
|
|
||||||
// ArrayBlockingQueue<Integer> s;
|
|
||||||
// LinkedBlockingQueue<Integer> a;
|
|
||||||
// FileInputStream fis;
|
|
||||||
// FileOutputStream fos;
|
|
||||||
// InputStreamReader isr;
|
|
||||||
// OutputStreamWriter osw;
|
|
||||||
// float b = Math.round(11.5);
|
|
||||||
// //System.out.println(b);
|
|
||||||
|
|
||||||
int[] t = new int[]{1,2};
|
|
||||||
int[] temp = t;
|
|
||||||
System.out.println(t[0]);
|
|
||||||
t[0]= 10;
|
|
||||||
System.out.println(temp[0]);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int foo() {
|
|
||||||
try {
|
|
||||||
System.out.println("sadfasdfasdf");
|
|
||||||
return a;
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return 3;
|
|
||||||
} finally {
|
|
||||||
System.out.println("finally: " + ++a);
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
11
code/src/main/java/com/raorao/interview/meituan/M.java
Normal file
11
code/src/main/java/com/raorao/interview/meituan/M.java
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package com.raorao.interview.meituan;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* .
|
||||||
|
*
|
||||||
|
* @author Xiong Raorao
|
||||||
|
* @since 2018-09-06-20:29
|
||||||
|
*/
|
||||||
|
public class M {
|
||||||
|
|
||||||
|
}
|
17
code/src/main/java/com/raorao/sword/ListNode.java
Normal file
17
code/src/main/java/com/raorao/sword/ListNode.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package com.raorao.sword;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* .
|
||||||
|
*
|
||||||
|
* @author Xiong Raorao
|
||||||
|
* @since 2018-09-06-10:28
|
||||||
|
*/
|
||||||
|
public class ListNode {
|
||||||
|
|
||||||
|
int val;
|
||||||
|
ListNode next = null;
|
||||||
|
|
||||||
|
ListNode(int val) {
|
||||||
|
this.val = val;
|
||||||
|
}
|
||||||
|
}
|
29
code/src/main/java/com/raorao/sword/Solution01.java
Normal file
29
code/src/main/java/com/raorao/sword/Solution01.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package com.raorao.sword;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* .
|
||||||
|
*
|
||||||
|
* @author Xiong Raorao
|
||||||
|
* @since 2018-09-06-10:04
|
||||||
|
*/
|
||||||
|
public class Solution01 {
|
||||||
|
|
||||||
|
public boolean Find(int target, int[][] array) {
|
||||||
|
if (array == null || array[0].length == 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
int m = array.length;
|
||||||
|
int n = array[0].length;
|
||||||
|
for (int i = m - 1; i >= 0; i--) {
|
||||||
|
for (int j = 0; j < n; j++) {
|
||||||
|
if (target < array[i][j]) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (target == array[i][j]) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
32
code/src/main/java/com/raorao/sword/Solution02.java
Normal file
32
code/src/main/java/com/raorao/sword/Solution02.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package com.raorao.sword;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* .
|
||||||
|
*
|
||||||
|
* @author Xiong Raorao
|
||||||
|
* @since 2018-09-06-10:20
|
||||||
|
*/
|
||||||
|
public class Solution02 {
|
||||||
|
|
||||||
|
public String replaceSpace(StringBuffer sb) {
|
||||||
|
int oldLength = sb.length();
|
||||||
|
for (int i = 0; i < oldLength; i++) {
|
||||||
|
if (sb.charAt(i) == ' ') {
|
||||||
|
sb.append(" ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int newLength = sb.length();
|
||||||
|
int oldIndex = oldLength - 1;
|
||||||
|
int newIndex = newLength - 1;
|
||||||
|
for (; (oldIndex >= 0 && newIndex > oldIndex); oldIndex--) {
|
||||||
|
if (sb.charAt(oldIndex) == ' ') {
|
||||||
|
sb.setCharAt(newIndex--, '0');
|
||||||
|
sb.setCharAt(newIndex--, '2');
|
||||||
|
sb.setCharAt(newIndex--, '%');
|
||||||
|
} else {
|
||||||
|
sb.setCharAt(newIndex--, sb.charAt(oldIndex));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
}
|
31
code/src/main/java/com/raorao/sword/Solution03.java
Normal file
31
code/src/main/java/com/raorao/sword/Solution03.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package com.raorao.sword;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Deque;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* .
|
||||||
|
*
|
||||||
|
* @author Xiong Raorao
|
||||||
|
* @since 2018-09-06-10:28
|
||||||
|
*/
|
||||||
|
public class Solution03 {
|
||||||
|
|
||||||
|
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
|
||||||
|
if (listNode == null) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
ListNode root = listNode;
|
||||||
|
Deque<Integer> stack = new LinkedList<>();
|
||||||
|
while (root != null) {
|
||||||
|
stack.push(root.val);
|
||||||
|
root = root.next;
|
||||||
|
}
|
||||||
|
ArrayList<Integer> ret = new ArrayList<>();
|
||||||
|
while (!stack.isEmpty()) {
|
||||||
|
ret.add(stack.pop());
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
45
code/src/main/java/com/raorao/sword/Solution04.java
Normal file
45
code/src/main/java/com/raorao/sword/Solution04.java
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
package com.raorao.sword;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重建二叉树.
|
||||||
|
*
|
||||||
|
* 已知前序和中序遍历,重建二叉树
|
||||||
|
*
|
||||||
|
* @author Xiong Raorao
|
||||||
|
* @since 2018-09-06-10:38
|
||||||
|
*/
|
||||||
|
public class Solution04 {
|
||||||
|
|
||||||
|
public TreeNode reConstructBinaryTree(int[] pre, int[] in) {
|
||||||
|
if (pre == null || in == null || pre.length != in.length) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return construct(pre, in, 0, pre.length - 1, 0, in.length - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private TreeNode construct(int[] pre, int[] in, int preStart, int preEnd, int inStart,
|
||||||
|
int inEnd) {
|
||||||
|
// 递归终止条件
|
||||||
|
if (preStart > preEnd || inStart > inEnd) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
int rootValue = pre[preStart];
|
||||||
|
TreeNode root = new TreeNode(rootValue);
|
||||||
|
|
||||||
|
// 找到根节点在中序遍历的位置
|
||||||
|
int rootInorder = inStart;
|
||||||
|
while (true) {
|
||||||
|
if (in[rootInorder] == rootValue) {
|
||||||
|
int leftLength = rootInorder - inStart;
|
||||||
|
root.left = construct(pre, in, preStart + 1, preStart + leftLength, inStart,
|
||||||
|
rootInorder - 1);
|
||||||
|
root.right = construct(pre, in, preStart + leftLength + 1, preEnd, rootInorder + 1, inEnd);
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
rootInorder++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
}
|
32
code/src/main/java/com/raorao/sword/Solution05.java
Normal file
32
code/src/main/java/com/raorao/sword/Solution05.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package com.raorao.sword;
|
||||||
|
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* .
|
||||||
|
*
|
||||||
|
* @author Xiong Raorao
|
||||||
|
* @since 2018-09-06-11:36
|
||||||
|
*/
|
||||||
|
public class Solution05 {
|
||||||
|
|
||||||
|
Stack<Integer> stack1 = new Stack<Integer>();
|
||||||
|
Stack<Integer> stack2 = new Stack<Integer>();
|
||||||
|
|
||||||
|
public void push(int node) {
|
||||||
|
stack1.push(node);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int pop() {
|
||||||
|
int ret;
|
||||||
|
if (!stack2.isEmpty()) {
|
||||||
|
ret = stack2.pop();
|
||||||
|
} else {
|
||||||
|
while (!stack1.isEmpty()) {
|
||||||
|
stack2.push(stack1.pop());
|
||||||
|
}
|
||||||
|
ret = stack2.pop();
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
30
code/src/main/java/com/raorao/sword/Solution06.java
Normal file
30
code/src/main/java/com/raorao/sword/Solution06.java
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package com.raorao.sword;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 旋转数组的最小数字,平多多面试题.
|
||||||
|
*
|
||||||
|
* @author Xiong Raorao
|
||||||
|
* @since 2018-09-06-11:38
|
||||||
|
*/
|
||||||
|
public class Solution06 {
|
||||||
|
|
||||||
|
public int minNumberInRotateArray(int[] array) {
|
||||||
|
return find(array, 0, array.length - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int find(int[] array, int start, int end) {
|
||||||
|
|
||||||
|
if (end - start == 1) {
|
||||||
|
return array[end];
|
||||||
|
}
|
||||||
|
|
||||||
|
int mid = start + (end - start) / 2;
|
||||||
|
if (array[start] <= array[mid]) {
|
||||||
|
// mid 属于旋转过去的
|
||||||
|
start = mid;
|
||||||
|
} else if (array[end] >= array[mid]) {
|
||||||
|
end = mid;
|
||||||
|
}
|
||||||
|
return find(array, start, end);
|
||||||
|
}
|
||||||
|
}
|
48
code/src/main/java/com/raorao/sword/Test.java
Normal file
48
code/src/main/java/com/raorao/sword/Test.java
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
package com.raorao.sword;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* .
|
||||||
|
*
|
||||||
|
* @author Xiong Raorao
|
||||||
|
* @since 2018-09-06-10:15
|
||||||
|
*/
|
||||||
|
public class Test {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//test01();
|
||||||
|
//test03();
|
||||||
|
test06();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void test01() {
|
||||||
|
Solution01 s = new Solution01();
|
||||||
|
int[][] data = new int[][] {
|
||||||
|
{1, 2, 8, 9},
|
||||||
|
{2, 4, 9, 12},
|
||||||
|
{4, 7, 10, 13},
|
||||||
|
{6, 8, 11, 15}
|
||||||
|
};
|
||||||
|
boolean r = s.Find(7, data);
|
||||||
|
System.out.println(r);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void test03() {
|
||||||
|
Solution03 s = new Solution03();
|
||||||
|
ListNode root = new ListNode(67);
|
||||||
|
root.next = new ListNode(0);
|
||||||
|
root.next.next = new ListNode(24);
|
||||||
|
root.next.next.next = new ListNode(58);
|
||||||
|
ArrayList<Integer> ret = s.printListFromTailToHead(root);
|
||||||
|
System.out.println(Arrays.toString(ret.toArray()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void test06() {
|
||||||
|
Solution06 s = new Solution06();
|
||||||
|
int[] array = new int[] {3, 4, 5, 1, 2};
|
||||||
|
int r = s.minNumberInRotateArray(array);
|
||||||
|
System.out.println(r);
|
||||||
|
}
|
||||||
|
}
|
18
code/src/main/java/com/raorao/sword/TreeNode.java
Normal file
18
code/src/main/java/com/raorao/sword/TreeNode.java
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
package com.raorao.sword;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* .
|
||||||
|
*
|
||||||
|
* @author Xiong Raorao
|
||||||
|
* @since 2018-09-06-10:38
|
||||||
|
*/
|
||||||
|
public class TreeNode {
|
||||||
|
|
||||||
|
int val;
|
||||||
|
TreeNode left;
|
||||||
|
TreeNode right;
|
||||||
|
|
||||||
|
TreeNode(int x) {
|
||||||
|
val = x;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user