• 239
  • 491
  • 450(把right挂到左子树的最右边就行,然后返回左边的值
  • 669
  • 42
  • 84
  • 376
  • 518
  • 377
  • 209
  • 115
  • 1262
  • 44
  • 442
  • 572 双重dfs
  • 31
  • 378
  • 215
  • 678
  • lcr120
  • 287链表赵环
  • 1044
  • 912堆排序,只需要一直往下swqp,然后进行交换头节点
  • 295对顶堆
  • 394,两个st,然后对s遍历,【的时候进行清0,】的时候进行放入数据res
  • 155 双栈,直接保存结果
  • 400
  • lcr158 abc表示下一个位置,抽数

主要是使用数学题目

多线程代码

交替答应100

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.weijia.test.multiProcess;

public class lab1 {
// 使用sync,wait与notify来进行
private int cnt = 1;
private static final Object lock = new Object();

public static void main(String[] args) {
lab1 l1 = new lab1();
Thread r1 = new Thread(new Runnable() {
public void run() {
l1.printNum(true);
}
});
Thread r2 = new Thread(new Runnable() {
public void run() {
l1.printNum(false);
}
});
r1.start();
r2.start();
}
public void printNum(Boolean isOdd){
while (cnt<10000){
synchronized (lock){
// 开始进行抢夺锁
// 查看是否符合条件进行运行
while((isOdd&&cnt%2==0)||(!isOdd&&cnt%2==1)){
// 释放lock
try {
lock.wait();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
//开始运行
if(cnt<=10000){
System.out.println(Thread.currentThread().getName()+":"+cnt);
cnt++;
// 开始唤醒其他所有线程
lock.notify();
}
}
}
}
}