Leetcode练习总结-Java版

Leetcode练习总结-Java版

对在Leetcode刷题过程中的问题和经验进行总结,主要内容有:

  • Java语法总结。

Java语法总结

Java容器共性

  • Java中的所有容器中的泛型内要填包装类型而不是基本类型,即应填Integer而不是int。
  • Java数组的一个属性是length,比如数组a的个数是a.length。不是成员函数

HashSet

声明

1
Set<Integer> set = new Hashset<>();

添加元素

1
set.add(1);

查找元素

1
flag = set.contains(1);

删除元素

1
set.remove(1);

清空集合

1
set.clear();

大小

1
int n = set.size();

迭代

1
2
3
for (Integer i : set) {
System.out.println(i);
}

HashMap

声明

1
Map<Integer, Integer> map = new HashMap<>();

添加元素

1
2
3
4
map.put(1, 1);
map.put(2, null);
map.put(3, 10);
map.put(null, 1);

判断元素是否存在

1
2
3
if (map.containsKey(1)) {
System.out.println("Value = " + map.get(1));
}

获取元素

1
System.out.println("Key = 3, Value = " + map.get(3));

删除元素

1
2
int res = map.remove(1);
System.out.println("res是key为1的value值:" + res);

清空Map

1
map.clear();

大小

1
int n = map.size();

迭代

1
2
3
4
5
6
for (Integer i : map.keySet()) {
System.out.println("key: " + i + " value: " + map.get(i));
}
for(Integer value : map.values()) {
System.out.print(value + ", ");
}

Math

  • 其中max和min都是Math类下的方法

max

1
a = Math.max(1, 2);

min

1
b = Math.min(1, 2);

PriorityQueue

  • 优先队列里没有empty方法,使用size()来判断。

比较器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
static Comparator<Integer> cmp = new Comparator<Integer>() {
public int compare(Integer e1, Integer e2) {
return e2 - e1;
}
};//自定义比较器,降序排列

//用lambda定义pair排序逻辑
PriorityQueue<Pair<Integer,Integer>> q =
new PriorityQueue<Pair<Integer,Integer>>((a,b) -> a.getValue() - b.getValue());
//这里(a,b) -> a.getValue() - b.getValue() 如果的逻辑是 返回值>0 则a大,否则b大

//优先队列默认是小顶堆,最小元素在堆顶
//如果要改变默认排序方式:
PriorityQueue<Integer> pq = new PriorityQueue<>((a, b) -> b - a);

声明

1
2
PriorityQueue<Integer> numbers = new PriorityQueue<>(); //不用比较器,默认升序排列
PriorityQueue<Integer> numbersqq = new PriorityQueue<>(cmp); //使用自定义比较器,降序排列

获取元素

1
2
int a = peek(); //返回队首元素
int b = poll(); //返回队首元素,队首元素出队列

添加元素

1
numbers.add(10086); //添加元素

大小

1
2
3
4
int n = numbers.size(); //返回队列元素个数
while(numbers.size() != 0) {
...
}

LinkedList

  • LinkedList实现了Deque和List ,可以作为List,Deque。

声明

1
List<String> list = new LinkedList<>();

添加元素

1
2
3
4
list.add("JavaSE"); //将指定元素追加到此列表的结尾
list.addFirst("JavaSE"); //将给定元素插入此列表的开头
list.addLast("JavaSE");//将给定元素追加到此列表的结尾
//set(int index, E element) 将此列表中指定位置的元素替换为指定的元素

移除元素

1
2
3
4
5
6
7
list.remove(1); //移除此列表中指定位置处的元素
list.remove("JavaSE")//移除此列表中首次出现的指定元素
//get(int index) 返回此列表中指定位置处的元素
//getFirst() 返回此列表的第一个元素
//getLast() 返回此列表的最后一个元素
//poll() 找到并移除此列表的头(第一个元素
//peek() 找到但不移除此列表的头(第一个元素)

Leetcode练习总结-Java版

https://dicemy.com/40189

作者

Dicemy

发布于

2024-07-15

更新于

2024-07-29

许可协议

评论