LeetCode代码日记(六)

高级数据结构篇——线段树&树状数组

源自LeetCode每日一题2023-11-13

LeetCode406: 根据身高重建队列

打着树状妆数组tag的脑筋急转弯:

1
2
3
4
5
6
7
8
public int[][] reconstructQueue(int[][] people) {
Arrays.sort(people, (o1, o2)-> o1[0] == o2[0] ? o1[1] - o2[1] : o2[0] - o1[0]); //h降序加k升序的初始化排列。
LinkedList<int[]> list = new LinkedList<>();
for (int[] i: people) {
list.add(i[1], i);
}
return list.toArray(new int[list.size()][2]);
}

LeetCode2070: 每一个查询的最大美丽值

思路如上题所述:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public int[] maximumBeauty(int[][] items, int[] queries) {
int[] answer = new int[queries.length];
Arrays.sort(items, (o1, o2)->o1[1] == o2[1] ? o1[0] - o2[0]: o2[1] - o1[1]);//items[1]降序 items[0]升序
for (int i = 0; i < queries.length; i++) {
int tmp = queries[i];
for (int[] q: items){
if (q[0] <= tmp) {
answer[i] = q[1];
break;
}
}
}
return answer;
}

LeetCode代码日记(六)
http://example.com/2023/11/13/LeetCode代码日记六/
作者
John Doe
发布于
2023年11月13日
许可协议