提交 372335e7 编写于 作者: L liu13

201907007

上级 f979b801
...@@ -5,6 +5,7 @@ package code; ...@@ -5,6 +5,7 @@ package code;
* 难度:Medium * 难度:Medium
* 分类:Array, Two Pointers * 分类:Array, Two Pointers
* Tips:复杂度可以为O(N), 指针往里走, 若值也小了,则面积一定不会增大。和lc42做比较 * Tips:复杂度可以为O(N), 指针往里走, 若值也小了,则面积一定不会增大。和lc42做比较
* lc11, lc42, lc84
*/ */
public class lc11 { public class lc11 {
public static void main(String[] args) { public static void main(String[] args) {
......
...@@ -11,7 +11,7 @@ package code; ...@@ -11,7 +11,7 @@ package code;
import java.util.HashMap; import java.util.HashMap;
public class lc146 { public class lc146 {
class Node { class Node { //定义一个Node类
int key; int key;
int value; int value;
Node pre; Node pre;
...@@ -25,8 +25,8 @@ public class lc146 { ...@@ -25,8 +25,8 @@ public class lc146 {
public class LRUCache { public class LRUCache {
HashMap<Integer, Node> map; HashMap<Integer, Node> map;
int capicity, count; int capicity, count; //最大容量,当前容量
Node head, tail; Node head, tail; //头节点,尾节点
public LRUCache(int capacity) { public LRUCache(int capacity) {
this.capicity = capacity; this.capicity = capacity;
...@@ -40,7 +40,7 @@ public class lc146 { ...@@ -40,7 +40,7 @@ public class lc146 {
count = 0; count = 0;
} }
public void deleteNode(Node node) { public void deleteNode(Node node) { //两个方法
node.pre.next = node.next; node.pre.next = node.next;
node.next.pre = node.pre; node.next.pre = node.pre;
} }
......
...@@ -39,8 +39,8 @@ public class lc322 { ...@@ -39,8 +39,8 @@ public class lc322 {
public static int coinChange2(int[] coins, int amount) { public static int coinChange2(int[] coins, int amount) {
int max = amount + 1; int max = amount + 1;
int[] dp = new int[amount + 1]; int[] dp = new int[amount + 1];
Arrays.fill(dp, max); Arrays.fill(dp, max); //表示无解
dp[0] = 0; dp[0] = 0; //dp[0]=0 不用先把零钱设为1了
for (int i = 1; i <= amount; i++) { for (int i = 1; i <= amount; i++) {
for (int j = 0; j < coins.length; j++) { for (int j = 0; j < coins.length; j++) {
if (coins[j] <= i) { if (coins[j] <= i) {
...@@ -48,6 +48,6 @@ public class lc322 { ...@@ -48,6 +48,6 @@ public class lc322 {
} }
} }
} }
return dp[amount] > amount ? -1 : dp[amount]; return dp[amount] > amount ? -1 : dp[amount]; //判断一下
} }
} }
...@@ -8,7 +8,7 @@ import java.util.Stack; ...@@ -8,7 +8,7 @@ import java.util.Stack;
* 难度:Hard * 难度:Hard
* 分类:Array, Two Pointers, Stack * 分类:Array, Two Pointers, Stack
* 思路:三种方法:1.DP先求出来每个位置的maxleft,maxright,再遍历一遍;2.两个指针,类似lc11题的思路;3.用栈数据结构; * 思路:三种方法:1.DP先求出来每个位置的maxleft,maxright,再遍历一遍;2.两个指针,类似lc11题的思路;3.用栈数据结构;
* Tips: * Tips:lc11, lc42, lc84
*/ */
public class lc42 { public class lc42 {
public static void main(String[] args) { public static void main(String[] args) {
......
...@@ -10,7 +10,7 @@ import java.util.Stack; ...@@ -10,7 +10,7 @@ import java.util.Stack;
* 思路:两种方法:1.用dp找到边界,再遍历一遍; 2.用栈,栈内存索引,保证栈内索引对应的高度是递增的,若减了即找到了右边界,出栈开始计算。因为栈内是递增的,左边界就是上个栈内的元素。若栈为空,左边界就是-1。 * 思路:两种方法:1.用dp找到边界,再遍历一遍; 2.用栈,栈内存索引,保证栈内索引对应的高度是递增的,若减了即找到了右边界,出栈开始计算。因为栈内是递增的,左边界就是上个栈内的元素。若栈为空,左边界就是-1。
* Tips:和lc42做比较,都可以用栈或者dp来做. 很难,栈的操作很难想到. * Tips:和lc42做比较,都可以用栈或者dp来做. 很难,栈的操作很难想到.
* 和lc42 dp作比较 和lc32栈做比较 * 和lc42 dp作比较 和lc32栈做比较
* lc85 * lc11, lc42, lc84
*/ */
public class lc84 { public class lc84 {
public static void main(String[] args) { public static void main(String[] args) {
......
...@@ -131,6 +131,7 @@ LeetCode 指南 ...@@ -131,6 +131,7 @@ LeetCode 指南
| 150 [Java](./code/lc150.java) | 150 [Java](./code/lc150.java)
| 151 [Java](./code/lc151.java) | 151 [Java](./code/lc151.java)
| 152 [Java](./code/lc152.java) | 152 [Java](./code/lc152.java)
| 153 [Java](./code/lc153.java)
| 155 [Java](./code/lc155.java) | 155 [Java](./code/lc155.java)
| 160 [Java](./code/lc160.java) | 160 [Java](./code/lc160.java)
| 162 [Java](./code/lc162.java) | 162 [Java](./code/lc162.java)
...@@ -144,6 +145,7 @@ LeetCode 指南 ...@@ -144,6 +145,7 @@ LeetCode 指南
| 190 [Java](./code/lc190.java) | 190 [Java](./code/lc190.java)
| 191 [Java](./code/lc191.java) | 191 [Java](./code/lc191.java)
| 198 [Java](./code/lc198.java) | 198 [Java](./code/lc198.java)
| 199 [Java](./code/lc199.java)
| 200 [Java](./code/lc200.java) | 200 [Java](./code/lc200.java)
| 202 [Java](./code/lc202.java) | 202 [Java](./code/lc202.java)
| 204 [Java](./code/lc204.java) | 204 [Java](./code/lc204.java)
...@@ -209,6 +211,7 @@ LeetCode 指南 ...@@ -209,6 +211,7 @@ LeetCode 指南
| 448 [Java](./code/lc448.java) | 448 [Java](./code/lc448.java)
| 454 [Java](./code/lc454.java) | 454 [Java](./code/lc454.java)
| 461 [Java](./code/lc461.java) | 461 [Java](./code/lc461.java)
| 493 [Java](./code/lc493.java)
| 494 [Java](./code/lc494.java) | 494 [Java](./code/lc494.java)
| 538 [Java](./code/lc538.java) | 538 [Java](./code/lc538.java)
| 543 [Java](./code/lc543.java) | 543 [Java](./code/lc543.java)
...@@ -227,6 +230,7 @@ LeetCode 指南 ...@@ -227,6 +230,7 @@ LeetCode 指南
| 771 [Java](./code/lc771.java) | 771 [Java](./code/lc771.java)
| 834 [Java](./code/lc834.java) | 834 [Java](./code/lc834.java)
| 877 [Java](./code/lc877.java) | 877 [Java](./code/lc877.java)
| 912 [Java](./code/lc912.java)
| 921 [Java](./code/lc921.java) | 921 [Java](./code/lc921.java)
| 922 [Java](./code/lc922.java) | 922 [Java](./code/lc922.java)
| 923 [Java](./code/lc923.java) | 923 [Java](./code/lc923.java)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册