add
This commit is contained in:
parent
0a779cdd32
commit
5770a9f011
21
5.leetcode/src/com/fanxb/common/Q144.java
Normal file
21
5.leetcode/src/com/fanxb/common/Q144.java
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package com.fanxb.common;
|
||||||
|
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
|
public class Q144 {
|
||||||
|
public List<Integer> preorderTraversal(TreeNode root) {
|
||||||
|
List<Integer> res = new LinkedList<>();
|
||||||
|
if (root == null) return res;
|
||||||
|
Stack<TreeNode> stack = new Stack<>();
|
||||||
|
stack.push(root);
|
||||||
|
while (!stack.isEmpty()) {
|
||||||
|
TreeNode node = stack.pop();
|
||||||
|
res.add(node.val);
|
||||||
|
if (node.right != null) stack.push(node.right);
|
||||||
|
if (node.left != null) stack.push(node.left);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
25
5.leetcode/src/com/fanxb/common/Q145.java
Normal file
25
5.leetcode/src/com/fanxb/common/Q145.java
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package com.fanxb.common;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
|
public class Q145 {
|
||||||
|
public List<Integer> postorderTraversal(TreeNode root) {
|
||||||
|
List<Integer> res = new ArrayList<>();
|
||||||
|
if (root == null) return res;
|
||||||
|
Stack<Integer> helpStack = new Stack<>();
|
||||||
|
Stack<TreeNode> stack = new Stack<>();
|
||||||
|
stack.push(root);
|
||||||
|
while (!stack.isEmpty()) {
|
||||||
|
TreeNode node = stack.pop();
|
||||||
|
helpStack.push(node.val);
|
||||||
|
if (node.left != null) stack.push(node.left);
|
||||||
|
if (node.right != null) stack.push(node.right);
|
||||||
|
}
|
||||||
|
while (!helpStack.isEmpty()) {
|
||||||
|
res.add(helpStack.pop());
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
20
5.leetcode/src/com/fanxb/common/Q230.java
Normal file
20
5.leetcode/src/com/fanxb/common/Q230.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.fanxb.common;
|
||||||
|
|
||||||
|
public class Q230 {
|
||||||
|
private int res = 0;
|
||||||
|
private int count = 0;
|
||||||
|
|
||||||
|
public int kthSmallest(TreeNode root, int k) {
|
||||||
|
dfs(root, k);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void dfs(TreeNode root, int k) {
|
||||||
|
if (root == null) return;
|
||||||
|
dfs(root.left, k);
|
||||||
|
if (++count == k) {
|
||||||
|
res = root.val;
|
||||||
|
}
|
||||||
|
dfs(root.right, k);
|
||||||
|
}
|
||||||
|
}
|
45
5.leetcode/src/com/fanxb/common/Q380.java
Normal file
45
5.leetcode/src/com/fanxb/common/Q380.java
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
package com.fanxb.common;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class Q380 {
|
||||||
|
private static class RandomizedSet {
|
||||||
|
private List<Integer> list;
|
||||||
|
private Map<Integer, Integer> map;
|
||||||
|
private Random random;
|
||||||
|
|
||||||
|
public RandomizedSet() {
|
||||||
|
list = new ArrayList<>();
|
||||||
|
map = new HashMap<>();
|
||||||
|
random = new Random();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean insert(int val) {
|
||||||
|
Integer index = map.get(val);
|
||||||
|
if (index != null) return false;
|
||||||
|
list.add(val);
|
||||||
|
map.put(val, list.size() - 1);
|
||||||
|
System.out.println(list.toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean remove(int val) {
|
||||||
|
Integer index = map.get(val);
|
||||||
|
if (index == null) return false;
|
||||||
|
int last = list.size() - 1;
|
||||||
|
int lastVal = list.get(last);
|
||||||
|
list.set(index, lastVal);
|
||||||
|
list.remove(last);
|
||||||
|
map.remove(val);
|
||||||
|
//避免长度为1时将删除的元素放到map
|
||||||
|
if (!list.isEmpty()) map.put(lastVal, index);
|
||||||
|
System.out.println(list.toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRandom() {
|
||||||
|
int size = list.size();
|
||||||
|
return size == 1 ? list.get(0) : list.get(Math.abs(random.nextInt()) % size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
21
5.leetcode/src/com/fanxb/common/Q530.java
Normal file
21
5.leetcode/src/com/fanxb/common/Q530.java
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package com.fanxb.common;
|
||||||
|
|
||||||
|
public class Q530 {
|
||||||
|
private int res = Integer.MAX_VALUE;
|
||||||
|
private Integer lastVal = null;
|
||||||
|
|
||||||
|
public int getMinimumDifference(TreeNode root) {
|
||||||
|
dfs(root);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void dfs(TreeNode root) {
|
||||||
|
if (root == null) return;
|
||||||
|
dfs(root.left);
|
||||||
|
if (lastVal != null) {
|
||||||
|
res = Math.min(res, Math.abs(root.val - lastVal));
|
||||||
|
}
|
||||||
|
lastVal = root.val;
|
||||||
|
dfs(root.right);
|
||||||
|
}
|
||||||
|
}
|
25
5.leetcode/src/com/fanxb/common/Q94.java
Normal file
25
5.leetcode/src/com/fanxb/common/Q94.java
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package com.fanxb.common;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
|
public class Q94 {
|
||||||
|
public List<Integer> inorderTraversal(TreeNode root) {
|
||||||
|
List<Integer> res = new ArrayList<>();
|
||||||
|
if (root == null) return res;
|
||||||
|
Stack<TreeNode> stack = new Stack<>();
|
||||||
|
stack.push(root);
|
||||||
|
TreeNode cur = root.left;
|
||||||
|
while (!stack.isEmpty() || cur != null) {
|
||||||
|
while (cur != null) {
|
||||||
|
stack.push(cur);
|
||||||
|
cur = cur.left;
|
||||||
|
}
|
||||||
|
TreeNode node = stack.pop();
|
||||||
|
res.add(node.val);
|
||||||
|
cur = node.right;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
20
5.leetcode/src/com/fanxb/common/Q98.java
Normal file
20
5.leetcode/src/com/fanxb/common/Q98.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.fanxb.common;
|
||||||
|
|
||||||
|
public class Q98 {
|
||||||
|
private Integer lastVal = null;
|
||||||
|
|
||||||
|
public boolean isValidBST(TreeNode root) {
|
||||||
|
return dfs(root);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean dfs(TreeNode root) {
|
||||||
|
if (root == null) return true;
|
||||||
|
boolean left = dfs(root.left);
|
||||||
|
if (lastVal != null && lastVal >= root.val) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
lastVal = root.val;
|
||||||
|
boolean right = dfs(root.right);
|
||||||
|
return left && right;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user