Skip to content

Commit c77e074

Browse files
committed
add leetcode933 , factory pattern , jvm
1 parent e75d281 commit c77e074

53 files changed

Lines changed: 1204 additions & 41 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Algorithm/src/leetCode/readme.md

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -219,32 +219,32 @@
219219

220220
## 901-950
221221

222-
| | |
223-
| ---- | ------------------------------------- |
224-
| | |
225-
| | |
226-
| | |
227-
| | _908MinimumDifference1最小差值 |
228-
| | |
229-
| | |
230-
| | |
231-
| | |
232-
| | |
233-
| | |
234-
| | |
235-
| | |
236-
| | |
237-
| | |
238-
| | |
239-
| | |
240-
| | |
241-
| | _937RearrangeLogFiles重新排列日志文件 |
242-
| | |
243-
| | |
244-
| | |
245-
| | |
246-
| | |
247-
| | |
222+
| | |
223+
| ------------------------------------- | ------------------------------ |
224+
| | |
225+
| | |
226+
| | |
227+
| | _908MinimumDifference1最小差值 |
228+
| | |
229+
| | |
230+
| | |
231+
| | |
232+
| | |
233+
| | |
234+
| | |
235+
| | |
236+
| | |
237+
| | |
238+
| | |
239+
| | |
240+
| _933NumberOfRecentRequests | |
241+
| | |
242+
| _937RearrangeLogFiles重新排列日志文件 | |
243+
| | |
244+
| | |
245+
| | |
246+
| | |
247+
| | |
248248

249249

250250

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package leetCode.subject.number901_950;
2+
3+
import java.util.LinkedList;
4+
import java.util.Queue;
5+
6+
/**
7+
* @author : CodeWater
8+
* @create :2022-05-06-10:32
9+
* @Function Description :933
10+
*/
11+
public class _933NumberOfRecentRequests {
12+
class RecentCounter {
13+
// 这道题说人话就是:t代表这个员工的工号,每次新员工t加入q公司前先把工号小于t -3000的老家伙都辞退,然后再让t入职,统计q公司现有几个员工
14+
Queue<Integer> q ;
15+
public RecentCounter() {
16+
// 得放在构造器中创建才会识别到。。。。
17+
q = new LinkedList<Integer>();
18+
}
19+
20+
public int ping(int t) {
21+
q.offer( t );
22+
while( q.peek() < t - 3000 ) q.poll();
23+
return q.size();
24+
}
25+
}
26+
27+
28+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package factory.factorymethod.pizzastore.order;
2+
3+
import factory.simplefactory.pizzastore.pizza.Pizza;
4+
5+
/**
6+
* @author : CodeWater
7+
* @create :2022-05-06-16:07
8+
* @Function Description :
9+
*/
10+
public class BJOrderPizza extends OrderPizza {
11+
@Override
12+
Pizza createPizza(String orderType) {
13+
Pizza pizza = null;
14+
if(orderType.equals("cheese")) {
15+
pizza = new BJCheesePizza();
16+
} else if (orderType.equals("pepper")) {
17+
pizza = new BJPepperPizza();
18+
}
19+
// TODO Auto-generated method stub
20+
return pizza;
21+
}
22+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package factory.factorymethod.pizzastore.order;
2+
3+
import factory.simplefactory.pizzastore.pizza.Pizza;
4+
5+
/**
6+
* @author : CodeWater
7+
* @create :2022-05-06-16:07
8+
* @Function Description :
9+
*/
10+
public class LDOrderPizza extends OrderPizza {
11+
@Override
12+
Pizza createPizza(String orderType) {
13+
Pizza pizza = null;
14+
if(orderType.equals("cheese")) {
15+
pizza = new LDCheesePizza();
16+
} else if (orderType.equals("pepper")) {
17+
pizza = new LDPepperPizza();
18+
}
19+
// TODO Auto-generated method stub
20+
return pizza;
21+
}
22+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package factory.factorymethod.pizzastore.order;
2+
3+
import factory.simplefactory.pizzastore.pizza.Pizza;
4+
5+
import java.io.BufferedReader;
6+
import java.io.IOException;
7+
import java.io.InputStreamReader;
8+
9+
/**
10+
* @author : CodeWater
11+
* @create :2022-05-06-16:05
12+
* @Function Description :
13+
*/
14+
public abstract class OrderPizza {
15+
//定义一个抽象方法,createPizza , 让各个工厂子类自己实现
16+
abstract Pizza createPizza(String orderType);
17+
// 构造器
18+
public OrderPizza() {
19+
Pizza pizza = null;
20+
String orderType; // 订购披萨的类型
21+
do {
22+
orderType = getType();
23+
pizza = createPizza(orderType); //抽象方法,由工厂子类完成
24+
//输出 pizza 制作过程
25+
pizza.prepare();
26+
pizza.bake();
27+
pizza.cut();
28+
pizza.box();
29+
} while (true);
30+
}
31+
32+
// 写一个方法,可以获取客户希望订购的披萨种类
33+
private String getType() {
34+
try {
35+
BufferedReader strin = new BufferedReader(new InputStreamReader(System.in));
36+
System.out.println("input pizza 种类:");
37+
String str = strin.readLine();
38+
return str;
39+
} catch (IOException e) {
40+
e.printStackTrace();
41+
return "";
42+
}
43+
}
44+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package factory.factorymethod.pizzastore.pizza;
2+
3+
public class BJCheesePizza extends Pizza {
4+
5+
@Override
6+
public void prepare() {
7+
// TODO Auto-generated method stub
8+
setName("����������pizza");
9+
System.out.println(" ����������pizza ׼��ԭ����");
10+
}
11+
12+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package factory.factorymethod.pizzastore.pizza;
2+
3+
public class BJPepperPizza extends Pizza {
4+
@Override
5+
public void prepare() {
6+
// TODO Auto-generated method stub
7+
setName("�������pizza");
8+
System.out.println(" �����ĺ���pizza ׼��ԭ����");
9+
}
10+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package factory.factorymethod.pizzastore.pizza;
2+
3+
public class LDCheesePizza extends Pizza{
4+
5+
@Override
6+
public void prepare() {
7+
// TODO Auto-generated method stub
8+
setName("�׶ص�����pizza");
9+
System.out.println(" �׶ص�����pizza ׼��ԭ����");
10+
}
11+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package factory.factorymethod.pizzastore.pizza;
2+
3+
public class LDPepperPizza extends Pizza{
4+
@Override
5+
public void prepare() {
6+
// TODO Auto-generated method stub
7+
setName("�׶صĺ���pizza");
8+
System.out.println(" �׶صĺ���pizza ׼��ԭ����");
9+
}
10+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package factory.factorymethod.pizzastore.pizza;
2+
3+
//��Pizza �����ɳ���
4+
public abstract class Pizza {
5+
protected String name; //����
6+
7+
//׼��ԭ����, ��ͬ��������һ������ˣ��������ɳ��󷽷�
8+
public abstract void prepare();
9+
10+
11+
public void bake() {
12+
System.out.println(name + " baking;");
13+
}
14+
15+
public void cut() {
16+
System.out.println(name + " cutting;");
17+
}
18+
19+
//���
20+
public void box() {
21+
System.out.println(name + " boxing;");
22+
}
23+
24+
public void setName(String name) {
25+
this.name = name;
26+
}
27+
}

0 commit comments

Comments
 (0)